Created
April 25, 2015 16:14
-
-
Save lluchs/ff2c0e380af8c58e0154 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> | |
<html> | |
<head> | |
<meta http-equiv="content-type" content="text/html; charset=UTF-8"> | |
<title>~/src/wren/example/syntax.wren.html</title> | |
<meta name="Generator" content="Vim/7.4"> | |
<meta name="plugin-version" content="vim7.4_v1"> | |
<meta name="syntax" content="wren"> | |
<meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy="> | |
<meta name="colorscheme" content="gruvbox"> | |
<style type="text/css"> | |
<!-- | |
pre { white-space: pre-wrap; font-family: monospace; color: #ebdbb2; background-color: #282828; } | |
body { font-family: monospace; color: #ebdbb2; background-color: #282828; } | |
* { font-size: 1em; } | |
.Number { color: #d3869b; } | |
.String { color: #b8bb26; } | |
.Keyword { color: #fb4934; } | |
.LineNr { color: #7c6f64; } | |
.Repeat { color: #fb4934; } | |
.Boolean { color: #d3869b; } | |
.Comment { color: #928374; } | |
.Constant { color: #d3869b; } | |
.Special { color: #fe8019; } | |
.Identifier { color: #83a598; } | |
.Normal { color: #ebdbb2; background-color: #282828; padding-bottom: 1px; } | |
.Function { color: #b8bb26; font-weight: bold; } | |
.Conditional { color: #fb4934; } | |
--> | |
</style> | |
<script type='text/javascript'> | |
<!-- | |
/* function to open any folds containing a jumped-to line before jumping to it */ | |
function JumpToLine() | |
{ | |
var lineNum; | |
lineNum = window.location.hash; | |
lineNum = lineNum.substr(1); /* strip off '#' */ | |
if (lineNum.indexOf('L') == -1) { | |
lineNum = 'L'+lineNum; | |
} | |
lineElem = document.getElementById(lineNum); | |
/* Always jump to new location even if the line was hidden inside a fold, or | |
* we corrected the raw number to a line ID. | |
*/ | |
if (lineElem) { | |
lineElem.scrollIntoView(true); | |
} | |
return true; | |
} | |
if ('onhashchange' in window) { | |
window.onhashchange = JumpToLine; | |
} | |
--> | |
</script> | |
</head> | |
<body onload='JumpToLine();'> | |
<pre id='vimCodeElement'> | |
<span id="L1" class="LineNr"> 1 </span><span class="Comment">// This file provides examples of syntactic constructs in wren, which is mainly</span> | |
<span id="L2" class="LineNr"> 2 </span><span class="Comment">// interesting for testing syntax highlighters.</span> | |
<span id="L3" class="LineNr"> 3 </span> | |
<span id="L4" class="LineNr"> 4 </span><span class="Comment">// This is a comment.</span> | |
<span id="L5" class="LineNr"> 5 </span><span class="Comment">/* This is /* a nested */ comment. */</span> | |
<span id="L6" class="LineNr"> 6 </span> | |
<span id="L7" class="LineNr"> 7 </span><span class="Comment">// Class definition with a toplevel name.</span> | |
<span id="L8" class="LineNr"> 8 </span><span class="Keyword">class</span> <span class="Identifier">SyntaxExample</span> { | |
<span id="L9" class="LineNr"> 9 </span> <span class="Comment">// Constructor</span> | |
<span id="L10" class="LineNr"> 10 </span><span class="Function"> </span><span class="Keyword">new</span> { | |
<span id="L11" class="LineNr"> 11 </span> <span class="Comment">// toplevel name `IO`</span> | |
<span id="L12" class="LineNr"> 12 </span> <span class="Identifier">IO</span>.print(<span class="String">"I am a constructor!"</span>) | |
<span id="L13" class="LineNr"> 13 </span> <span class="Comment">// method calls</span> | |
<span id="L14" class="LineNr"> 14 </span> variables | |
<span id="L15" class="LineNr"> 15 </span> fields() | |
<span id="L16" class="LineNr"> 16 </span> <span class="Comment">// static method call</span> | |
<span id="L17" class="LineNr"> 17 </span> <span class="Identifier">SyntaxExample</span>.fields(<span class="Number">1</span>) | |
<span id="L18" class="LineNr"> 18 </span> } | |
<span id="L19" class="LineNr"> 19 </span> | |
<span id="L20" class="LineNr"> 20 </span> <span class="Comment">// Constructor with arguments</span> | |
<span id="L21" class="LineNr"> 21 </span><span class="Function"> </span><span class="Keyword">new</span>(a, b) { | |
<span id="L22" class="LineNr"> 22 </span> print(a, b) | |
<span id="L23" class="LineNr"> 23 </span> field <span class="Normal">=</span> a | |
<span id="L24" class="LineNr"> 24 </span> } | |
<span id="L25" class="LineNr"> 25 </span> | |
<span id="L26" class="LineNr"> 26 </span> <span class="Comment">// Method without arguments</span> | |
<span id="L27" class="LineNr"> 27 </span><span class="Function"> variables</span> { | |
<span id="L28" class="LineNr"> 28 </span> <span class="Comment">// Valid local variable names.</span> | |
<span id="L29" class="LineNr"> 29 </span> <span class="Keyword">var</span> hi | |
<span id="L30" class="LineNr"> 30 </span> <span class="Keyword">var</span> camelCase | |
<span id="L31" class="LineNr"> 31 </span> <span class="Keyword">var</span> <span class="Identifier">PascalCase</span> | |
<span id="L32" class="LineNr"> 32 </span> <span class="Keyword">var</span> abc123 | |
<span id="L33" class="LineNr"> 33 </span> <span class="Keyword">var</span> <span class="Identifier">ALL_CAPS</span> | |
<span id="L34" class="LineNr"> 34 </span> } | |
<span id="L35" class="LineNr"> 35 </span> | |
<span id="L36" class="LineNr"> 36 </span> <span class="Comment">// Method with empty argument list</span> | |
<span id="L37" class="LineNr"> 37 </span><span class="Function"> fields</span>() { | |
<span id="L38" class="LineNr"> 38 </span> <span class="Comment">// Fields</span> | |
<span id="L39" class="LineNr"> 39 </span> <span class="Identifier">_under_score</span> <span class="Normal">=</span> <span class="Number">1</span> | |
<span id="L40" class="LineNr"> 40 </span> <span class="Identifier">_field</span> <span class="Normal">=</span> <span class="Number">2</span> | |
<span id="L41" class="LineNr"> 41 </span> } | |
<span id="L42" class="LineNr"> 42 </span> | |
<span id="L43" class="LineNr"> 43 </span> <span class="Comment">// Static method with single argument</span> | |
<span id="L44" class="LineNr"> 44 </span><span class="Function"> </span><span class="Keyword">static</span><span class="Function"> fields</span>(a) { | |
<span id="L45" class="LineNr"> 45 </span> <span class="Comment">// Static field</span> | |
<span id="L46" class="LineNr"> 46 </span> <span class="Identifier">__a</span> <span class="Normal">=</span> a | |
<span id="L47" class="LineNr"> 47 </span> } | |
<span id="L48" class="LineNr"> 48 </span> | |
<span id="L49" class="LineNr"> 49 </span> <span class="Comment">// setter</span> | |
<span id="L50" class="LineNr"> 50 </span><span class="Function"> field=</span>(value) { <span class="Identifier">_field</span> <span class="Normal">=</span> value } | |
<span id="L51" class="LineNr"> 51 </span> | |
<span id="L52" class="LineNr"> 52 </span> <span class="Comment">// Method with arguments</span> | |
<span id="L53" class="LineNr"> 53 </span><span class="Function"> print</span>(a, b) { <span class="Identifier">IO</span>.print(a <span class="Normal">+</span> b) } | |
<span id="L54" class="LineNr"> 54 </span>} | |
<span id="L55" class="LineNr"> 55 </span> | |
<span id="L56" class="LineNr"> 56 </span><span class="Comment">// `class`, `is`</span> | |
<span id="L57" class="LineNr"> 57 </span><span class="Keyword">class</span> <span class="Identifier">ReservedWords</span> <span class="Keyword">is</span> <span class="Identifier">SyntaxExample</span> { | |
<span id="L58" class="LineNr"> 58 </span> <span class="Comment">// `new`</span> | |
<span id="L59" class="LineNr"> 59 </span><span class="Function"> </span><span class="Keyword">new</span> { | |
<span id="L60" class="LineNr"> 60 </span> <span class="Comment">// `super`, `true`, `false`</span> | |
<span id="L61" class="LineNr"> 61 </span> <span class="Keyword">super</span>(<span class="Boolean">true</span>, <span class="Boolean">false</span>) | |
<span id="L62" class="LineNr"> 62 </span> <span class="Comment">// `this`</span> | |
<span id="L63" class="LineNr"> 63 </span> <span class="Keyword">this</span>.foo | |
<span id="L64" class="LineNr"> 64 </span> <span class="Comment">// `new`</span> | |
<span id="L65" class="LineNr"> 65 </span> <span class="Keyword">new</span> <span class="Identifier">SyntaxExample</span> | |
<span id="L66" class="LineNr"> 66 </span> } | |
<span id="L67" class="LineNr"> 67 </span> | |
<span id="L68" class="LineNr"> 68 </span><span class="Function"> foo</span> { | |
<span id="L69" class="LineNr"> 69 </span> <span class="Comment">// `var`</span> | |
<span id="L70" class="LineNr"> 70 </span> <span class="Keyword">var</span> n <span class="Normal">=</span> <span class="Number">27</span> | |
<span id="L71" class="LineNr"> 71 </span> <span class="Comment">// `while`, `if`, `else`</span> | |
<span id="L72" class="LineNr"> 72 </span> <span class="Repeat">while</span> (n <span class="Normal">!=</span> <span class="Number">1</span>) <span class="Conditional">if</span> (n <span class="Normal">%</span> <span class="Number">2</span> <span class="Normal">==</span> <span class="Number">0</span>) n <span class="Normal">=</span> n <span class="Normal">/</span> <span class="Number">2</span> <span class="Conditional">else</span> n <span class="Normal">=</span> <span class="Number">3</span> <span class="Normal">*</span> n <span class="Normal">+</span> <span class="Number">1</span> | |
<span id="L73" class="LineNr"> 73 </span> | |
<span id="L74" class="LineNr"> 74 </span> <span class="Comment">// `for`, `in`</span> | |
<span id="L75" class="LineNr"> 75 </span><span class="Function"> for</span> (beatle <span class="Keyword">in</span> [<span class="String">"george"</span>, <span class="String">"john"</span>, <span class="String">"paul"</span>, <span class="String">"ringo"</span>]) { | |
<span id="L76" class="LineNr"> 76 </span> <span class="Identifier">IO</span>.print(beatle) | |
<span id="L77" class="LineNr"> 77 </span> <span class="Comment">// `break`</span> | |
<span id="L78" class="LineNr"> 78 </span> <span class="Repeat">break</span> | |
<span id="L79" class="LineNr"> 79 </span> } | |
<span id="L80" class="LineNr"> 80 </span> | |
<span id="L81" class="LineNr"> 81 </span> <span class="Comment">// `return`, `null`</span> | |
<span id="L82" class="LineNr"> 82 </span> <span class="Keyword">return</span> <span class="Constant">null</span> | |
<span id="L83" class="LineNr"> 83 </span> } | |
<span id="L84" class="LineNr"> 84 </span> | |
<span id="L85" class="LineNr"> 85 </span><span class="Function"> imports</span> { | |
<span id="L86" class="LineNr"> 86 </span> <span class="Comment">// `import`</span> | |
<span id="L87" class="LineNr"> 87 </span> <span class="Keyword">import</span> <span class="String">"hello"</span> | |
<span id="L88" class="LineNr"> 88 </span> <span class="Comment">// `import`, `for`</span> | |
<span id="L89" class="LineNr"> 89 </span> <span class="Keyword">import</span> <span class="String">"set"</span> <span class="Repeat">for</span> <span class="Identifier">Set</span> | |
<span id="L90" class="LineNr"> 90 </span> } | |
<span id="L91" class="LineNr"> 91 </span> | |
<span id="L92" class="LineNr"> 92 </span> <span class="Comment">// `foreign`, `static`</span> | |
<span id="L93" class="LineNr"> 93 </span><span class="Function"> </span><span class="Keyword">foreign</span><span class="Function"> </span><span class="Keyword">static</span><span class="Function"> bar</span> | |
<span id="L94" class="LineNr"> 94 </span><span class="Function"> </span><span class="Keyword">foreign</span><span class="Function"> baz</span>(string) | |
<span id="L95" class="LineNr"> 95 </span> <span class="Comment">// (Remove lines above to make this file compile)</span> | |
<span id="L96" class="LineNr"> 96 </span>} | |
<span id="L97" class="LineNr"> 97 </span> | |
<span id="L98" class="LineNr"> 98 </span><span class="Keyword">class</span> literals <span class="Keyword">is</span> <span class="Identifier">SyntaxExample</span> { | |
<span id="L99" class="LineNr"> 99 </span><span class="Function"> booleans</span> { <span class="Boolean">true</span> <span class="Normal">||</span> <span class="Boolean">false</span> } | |
<span id="L100" class="LineNr">100 </span><span class="Function"> numbers</span> { | |
<span id="L101" class="LineNr">101 </span> <span class="Number">0</span> | |
<span id="L102" class="LineNr">102 </span> <span class="Number">1234</span> | |
<span id="L103" class="LineNr">103 </span> <span class="Normal">-</span><span class="Number">5678</span> | |
<span id="L104" class="LineNr">104 </span> <span class="Number">3.14159</span> | |
<span id="L105" class="LineNr">105 </span> <span class="Number">1.0</span> | |
<span id="L106" class="LineNr">106 </span> <span class="Normal">-</span><span class="Number">12.34</span> | |
<span id="L107" class="LineNr">107 </span> <span class="Number">0xdeadbeef</span> | |
<span id="L108" class="LineNr">108 </span> <span class="Number">0x1234567890ABCDEF</span> | |
<span id="L109" class="LineNr">109 </span> } | |
<span id="L110" class="LineNr">110 </span><span class="Function"> strings</span> { | |
<span id="L111" class="LineNr">111 </span> <span class="String">"hi there"</span> | |
<span id="L112" class="LineNr">112 </span> <span class="Comment">// Escapes:</span> | |
<span id="L113" class="LineNr">113 </span> <span class="String">"</span><span class="Special">\0</span><span class="String">"</span> <span class="Comment">// The NUL byte: 0.</span> | |
<span id="L114" class="LineNr">114 </span> <span class="String">"</span><span class="Special">\"</span><span class="String">"</span> <span class="Comment">// A double quote character.</span> | |
<span id="L115" class="LineNr">115 </span> <span class="String">"</span><span class="Special">\\</span><span class="String">"</span> <span class="Comment">// A backslash.</span> | |
<span id="L116" class="LineNr">116 </span> <span class="String">"</span><span class="Special">\a</span><span class="String">"</span> <span class="Comment">// Alarm beep. (Who uses this?)</span> | |
<span id="L117" class="LineNr">117 </span> <span class="String">"</span><span class="Special">\b</span><span class="String">"</span> <span class="Comment">// Backspace.</span> | |
<span id="L118" class="LineNr">118 </span> <span class="String">"</span><span class="Special">\f</span><span class="String">"</span> <span class="Comment">// Formfeed.</span> | |
<span id="L119" class="LineNr">119 </span> <span class="String">"</span><span class="Special">\n</span><span class="String">"</span> <span class="Comment">// Newline.</span> | |
<span id="L120" class="LineNr">120 </span> <span class="String">"</span><span class="Special">\r</span><span class="String">"</span> <span class="Comment">// Carriage return.</span> | |
<span id="L121" class="LineNr">121 </span> <span class="String">"</span><span class="Special">\t</span><span class="String">"</span> <span class="Comment">// Tab.</span> | |
<span id="L122" class="LineNr">122 </span> <span class="String">"</span><span class="Special">\v</span><span class="String">"</span> <span class="Comment">// Vertical tab.</span> | |
<span id="L123" class="LineNr">123 </span> <span class="Comment">// Unicode code points</span> | |
<span id="L124" class="LineNr">124 </span> <span class="Identifier">IO</span>.print(<span class="String">"</span><span class="Special">\u0041\u0b83\u00DE</span><span class="String">"</span>) <span class="Comment">// "AஃÞ"</span> | |
<span id="L125" class="LineNr">125 </span> <span class="Comment">// Unencoded bytes</span> | |
<span id="L126" class="LineNr">126 </span> <span class="Identifier">IO</span>.print(<span class="String">"</span><span class="Special">\x48\x69\x2e</span><span class="String">"</span>) <span class="Comment">// "Hi."</span> | |
<span id="L127" class="LineNr">127 </span> } | |
<span id="L128" class="LineNr">128 </span><span class="Function"> ranges</span> { | |
<span id="L129" class="LineNr">129 </span> <span class="Number">3</span><span class="Normal">..</span><span class="Number">8</span> <span class="Comment">// inclusive</span> | |
<span id="L130" class="LineNr">130 </span> <span class="Number">4</span><span class="Normal">...</span><span class="Number">6</span> <span class="Comment">// half-inclusive</span> | |
<span id="L131" class="LineNr">131 </span> } | |
<span id="L132" class="LineNr">132 </span><span class="Function"> nothing</span> { <span class="Constant">null</span> } | |
<span id="L133" class="LineNr">133 </span> | |
<span id="L134" class="LineNr">134 </span><span class="Function"> lists</span> { | |
<span id="L135" class="LineNr">135 </span> <span class="Keyword">var</span> list <span class="Normal">=</span> [<span class="Number">1</span>, <span class="String">"banana"</span>, <span class="Boolean">true</span>] | |
<span id="L136" class="LineNr">136 </span> list[<span class="Number">0</span>] <span class="Normal">=</span> <span class="Number">5</span> | |
<span id="L137" class="LineNr">137 </span> list[<span class="Number">1</span><span class="Normal">..</span><span class="Number">2</span>] | |
<span id="L138" class="LineNr">138 </span> } | |
<span id="L139" class="LineNr">139 </span><span class="Function"> maps</span> { | |
<span id="L140" class="LineNr">140 </span> <span class="Keyword">var</span> stringMap <span class="Normal">=</span> { | |
<span id="L141" class="LineNr">141 </span> <span class="String">"George"</span>: <span class="String">"Harrison"</span>, | |
<span id="L142" class="LineNr">142 </span> <span class="String">"John"</span>: <span class="String">"Lennon"</span>, | |
<span id="L143" class="LineNr">143 </span> <span class="String">"Paul"</span>: <span class="String">"McCartney"</span>, | |
<span id="L144" class="LineNr">144 </span> <span class="String">"Ringo"</span>: <span class="String">"Starr"</span> | |
<span id="L145" class="LineNr">145 </span> } | |
<span id="L146" class="LineNr">146 </span> <span class="Keyword">var</span> a <span class="Normal">=</span> <span class="Number">1</span> | |
<span id="L147" class="LineNr">147 </span> <span class="Keyword">var</span> weirdMap <span class="Normal">=</span> { | |
<span id="L148" class="LineNr">148 </span> <span class="Boolean">true</span>: <span class="Number">1</span>, | |
<span id="L149" class="LineNr">149 </span> <span class="Boolean">false</span>: <span class="Number">0</span>, | |
<span id="L150" class="LineNr">150 </span> <span class="Constant">null</span>: <span class="Normal">-</span><span class="Number">1</span>, | |
<span id="L151" class="LineNr">151 </span> <span class="String">"str"</span>: <span class="String">"abc"</span>, | |
<span id="L152" class="LineNr">152 </span> (<span class="Number">1</span><span class="Normal">..</span><span class="Number">5</span>): <span class="Number">10</span>, | |
<span id="L153" class="LineNr">153 </span> a: <span class="Number">2</span>, | |
<span id="L154" class="LineNr">154 </span> <span class="Identifier">_a</span>: <span class="Number">3</span>, | |
<span id="L155" class="LineNr">155 </span> <span class="Identifier">__a</span>: <span class="Number">4</span> | |
<span id="L156" class="LineNr">156 </span> } | |
<span id="L157" class="LineNr">157 </span> } | |
<span id="L158" class="LineNr">158 </span>} | |
</pre> | |
</body> | |
</html> | |
<!-- vim: set foldmethod=manual : --> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment