From 113cd0ee344f4d78010d942d2a4733076f8e4d59 Mon Sep 17 00:00:00 2001 From: Evan Hahn Date: Fri, 1 May 2026 17:55:13 -0500 Subject: [PATCH] Add Arturo lexer (#1232) This is a port of `pygments.lexers.arturo` from Pygments. --- lexers/embedded/arturo.xml | 119 ++ lexers/testdata/arturo.actual | 457 +++++++ lexers/testdata/arturo.expected | 2137 +++++++++++++++++++++++++++++++ 3 files changed, 2713 insertions(+) create mode 100644 lexers/embedded/arturo.xml create mode 100644 lexers/testdata/arturo.actual create mode 100644 lexers/testdata/arturo.expected diff --git a/lexers/embedded/arturo.xml b/lexers/embedded/arturo.xml new file mode 100644 index 0000000..541dc46 --- /dev/null +++ b/lexers/embedded/arturo.xml @@ -0,0 +1,119 @@ + + + + Arturo + arturo + art + *.art + + + + + + + + + + + + + + + + + + + + + + + + + 3 + 5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lexers/testdata/arturo.actual b/lexers/testdata/arturo.actual new file mode 100644 index 0000000..c3aa059 --- /dev/null +++ b/lexers/testdata/arturo.actual @@ -0,0 +1,457 @@ +#! home/.arturo/bin + +; this is a comment +; this is another comment + +;--------------------------------- +; VARIABLES & VALUES +;--------------------------------- + +; numbers +a1: 2 +a2: 3.14 +a3: to :complex [1 2.0] ; 1.0+2.0i + +; strings +c1: "this is a string" +c2: { + this is a multiline string + that is indentation-agnostic +} + +c3: {: + this is + a verbatim + multiline string + which will remain exactly + as the original +:} + +c4: { + this is a multiline string + with |a1| lines. +} + +annotatedStrings: {!md + # This is a markdown example + + I'm a paragraph + + > I'm a blockquote + + ```c + #include + int main() { + char * name = "World"; + printf("Hello, %s!", name); + printf( "I'm a highlighted C code" + "inside Markdown highlighted code," + "inside Arturo. Awesome!" + ); + return 0; + } + ``` +} + +smartString: »I'm a string until the end of line ; I'm not a comment +safeString: «««I'm a safe string. 🙂»»» ; I'm a comment + +; characters +ch: `c` + +; blocks/arrays +d: [1 2 3] + +; dictionaries +e: #[ + name: "John" + surname: "Doe" + age: 34 + likes: [pizza spaghetti] +] + +; yes, functions are values too +f: function [x][ + 2 * x +] + +; colors - right, you can directly define them as well! +g1: #red +g2: #0077BF + +; dates +h: now ; 2021-05-03T17:10:48+02:00 + +; logical values +i1: true +i2: false +i3: maybe + +;--------------------------------- +; BASIC OPERATORS +;--------------------------------- + +; simple arithmetic +1 + 1 ; => 2 +8 - 1 ; => 7 +4.2 - 1.1 ; => 3.1 +10 * 2 ; => 20 +35 / 4 ; => 8 +35 // 4 ; => 8.75 +2 ^ 5 ; => 32 +5 % 3 ; => 2 + +; bitwise operators +and 3 5 ; => 1 +or 3 5 ; => 7 +xor 3 5 ; => 6 + +; pre-defined constants +pi ; => 3.141592653589793 +epsilon ; => 2.718281828459045 +null ; => null +true ; => true +false ; => false + +;--------------------------------- +; COMPARISON OPERATORS +;--------------------------------- + +; equality +1 = 1 ; => true +2 = 1 ; => false + +; inequality +1 <> 1 ; => false +2 <> 1 ; => true + +; more comparisons +1 < 10 ; => true +1 =< 10 ; => true +10 =< 10 ; => true +1 > 10 ; => false +1 >= 10 ; => false +11 >= 10 ; => true + +;--------------------------------- +; CONDITIONALS +;--------------------------------- + +; logical operators +and? true true ; => true +and? true false ; => false +or? true false ; => true +or? false false ; => false + +and? [1=2][2<3] ; => false + ; (the second block will not be evaluated) + +; simple if statements +if 2 > 1 [ print "yes!"] ; yes! +if 3 <> 2 -> print "true!" ; true! + +; if/else statements +if? 2 > 3 -> print "2 is greater than 3" +else -> print "2 is not greater than 3" ; 2 is not greater than 3 + +; switch statements +switch 2 > 3 -> print "2 is greater than 3" + -> print "2 is not greater than 3" ; 2 is not greater than 3 + +a: (2 > 3)["yes"]["no"] ; a: "no" +a: (2 > 3)? -> "yes" -> "no" ; a: "no" (exactly the same as above) + +; case/when statements +case [1] + when? [>2] -> print "1 is greater than 2. what?!" + when? [<0] -> print "1 is less than 0. nope..." + else -> print "here we are!" ; here we are! + +;--------------------------------- +; LOOPS +;--------------------------------- + +; with `loop` +arr: [1 4 5 3] +loop arr 'x [ + print ["x =" x] +] +; x = 1 +; x = 4 +; x = 5 +; x = 3 + +; with loop and custom index +loop.with:'i arr 'x [ + print ["item at position" i "=>" x] +] +; item at position 0 => 1 +; item at position 1 => 4 +; item at position 2 => 5 +; item at position 3 => 3 + +; using ranges +loop 1..3 'x -> ; since it's a single statement + print x ; there's no need for [block] notation + ; we can wrap it up using the `->` syntactic sugar + +loop `a`..`c` 'ch -> + print ch +; a +; b +; c + +; picking multiple items +loop 1..10 [x y] -> + print ["x =" x ", y =" y] +; x = 1 , y = 2 +; x = 3 , y = 4 +; x = 5 , y = 6 +; x = 7 , y = 8 +; x = 9 , y = 10 + +; looping through a dictionary +dict: #[name: "John", surname: "Doe", age: 34] +loop dict [key value][ + print [key "->" value] +] +; name -> John +; surname -> Doe +; age -> 34 + +; while loops +i: new 0 +while [i<3][ + print ["i =" i] + inc 'i +] +; i = 0 +; i = 1 +; i = 2 + +;--------------------------------- +; STRINGS +;--------------------------------- + +; case +a: "tHis Is a stRinG" +print upper a ; THIS IS A STRING +print lower a ; this is a string +print capitalize a ; THis Is a stRinG + +; concatenation +a: "Hello " ++ "World!" ; a: "Hello World!" + +; strings as an array +split "hello" ; => [h e l l o] +split.words "hello world" ; => [hello world] + +print first "hello" ; h +print last "hello" ; o + +; conversion +to :string 123 ; => "123" +to :integer "123" ; => 123 + +; joining strings together +join ["hello" "world"] ; => "helloworld" +join.with:"-" ["hello" "world"] ; => "hello-world" + +; string interpolation +x: 2 +print ~"x = |x|" ; x = 2 + +; interpolation with `print` +print ["x =" x] ; x = 2 + ; (`print` works by calculating the given block + ; and joining the different values as strings + ; with a single space between them) + +; templates +print render.template { + <||= switch x=2 [ ||> + Yes, x = 2 + <||][||> + No, x is not 2 + <||]||> +} ; Yes, x = 2 + +; matching +prefix? "hello" "he" ; => true +suffix? "hello" "he" ; => false + +contains? "hello" "ll" ; => true +contains? "hello" "he" ; => true +contains? "hello" "x" ; => false + +in? "ll" "hello" ; => true +in? "x" "hello" ; => false + +;--------------------------------- +; BLOCKS +;--------------------------------- + +; calculate a block +arr: [1 1+1 1+1+1] +@arr ; => [1 2 3] + +; execute a block +sth: [print "Hello world"] ; this is perfectly valid, + ; could contain *anything* + ; and will not be executed... + +do sth ; Hello world + ; (...until we tell it to) + +; array indexing +arr: ["zero" "one" "two" "three"] +print first arr ; zero +print arr\0 ; zero +print last arr ; three +print arr\3 ; three + +x: 2 +print get arr x ; two +print arr\[x] ; two + +; setting an array element +arr\0: "nada" +set arr 2 "dos" +print arr ; nada one dos three + +; adding elements to an array +arr: new [] +'arr ++ "one" +'arr ++ "two" +print arr ; one two + +; remove elements from an array +arr: new ["one" "two" "three" "four"] +'arr -- "two" ; arr: ["one" "three" "four"] +remove 'arr .index 0 ; arr: ["three" "four"] + +; getting the size of an array +arr: ["one" 2 "three" 4] +print size arr ; 4 + +; getting a slice of an array +print slice ["one" "two" "three" "four"] 0 1 ; one two + +; check if array contains a specific element +print contains? arr "one" ; true +print contains? arr "five" ; false + +; sorting array +arr: [1 5 3 2 4] +sort arr ; => [1 2 3 4 5] +sort.descending arr ; => [5 4 3 2 1] + +; mapping values +map 1..10 [x][2*x] ; => [2 4 6 8 10 12 14 16 18 20] +map 1..10 'x -> 2*x ; same as above +map 1..10 => [2*&] ; same as above +map 1..10 => [2*] ; same as above + +; selecting/filtering array values +select 1..10 [x][odd? x] ; => [1 3 5 7 9] +select 1..10 => odd? ; same as above + +filter 1..10 => odd? ; => [2 4 6 8 10] + ; (now, we leave out all odd numbers - + ; while select keeps them) + +; misc operations +arr: ["one" 2 "three" 4] +reverse arr ; => [4 "three" 2 "one"] +shuffle arr ; => [2 4 "three" "one"] +unique [1 2 3 2 3 1] ; => [1 2 3] +permutate [1 2 3] ; => [[1 2 3] [1 3 2] [3 1 2] [2 1 3] [2 3 1] [3 2 1]] +take 1..10 3 ; => [1 2 3] +repeat [1 2] 3 ; => [1 2 1 2 1 2] + +;--------------------------------- +; FUNCTIONS +;--------------------------------- + +; declaring a function +f: function [x][ 2*x ] +f: function [x]-> 2*x ; same as above +f: $[x]->2*x ; same as above (only using the `$` alias + ; for the `function`... function) + +; calling a function +f 10 ; => 20 + +; returning a value +g: function [x][ + if x < 2 -> return 0 + + res: 0 + loop 0..x 'z [ + res: res + z + ] + return res +] + +;--------------------------------- +; CUSTOM TYPES +;--------------------------------- + +; defining a custom type +define :person [ ; define a new custom type "Person" + name ; with fields: name, surname, age + surname + age +][ + ; with custom post-construction initializer + init: [ + this\name: capitalize this\name + ] + + ; custom print function + print: [ + render "NAME: |this\name|, SURNAME: |this\surname|, AGE: |this\age|" + ] + + ; custom comparison operator + compare: 'age +] + +; create a method for our custom type +sayHello: function [this][ + ensure -> is? :person this + + print ["Hello" this\name] +] + +; create new objects of our custom type +a: to :person ["John" "Doe" 34] ; let's create 2 "Person"s +b: to :person ["jane" "Doe" 33] ; and another one + +; call pseudo-inner method +sayHello a ; Hello John +sayHello b ; Hello Jane + +; access object fields +print ["The first person's name is:" a\name] ; The first person's name is: John +print ["The second person's name is:" b\name] ; The second person's name is: Jane + +; changing object fields +a\name: "Bob" +sayHello a ; Hello Bob + +; verifying object type +print type a ; :person +print is? :person a ; true + +; printing objects +print a ; NAME: John, SURNAME: Doe, AGE: 34 + +; sorting user objects (using custom comparator) +sort @[a b] ; Jane..., John... +sort.descending @[a b] ; John..., Jane... + +eofString: +--- +I'm an end of file +Multiline string. diff --git a/lexers/testdata/arturo.expected b/lexers/testdata/arturo.expected new file mode 100644 index 0000000..2e96d37 --- /dev/null +++ b/lexers/testdata/arturo.expected @@ -0,0 +1,2137 @@ +[ + {"type":"CommentHashbang","value":"#! home/.arturo/bin"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; this is a comment"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"CommentSingle","value":"; this is another comment"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":";---------------------------------"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"CommentSingle","value":"; VARIABLES \u0026 VALUES"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"CommentSingle","value":";---------------------------------"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; numbers"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameLabel","value":"a1:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"2"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameLabel","value":"a2:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberFloat","value":"3.14"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameLabel","value":"a3:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltin","value":"to"}, + {"type":"TextWhitespace","value":" "}, + {"type":"KeywordType","value":":complex"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"LiteralNumberInteger","value":"1"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberFloat","value":"2.0"}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; 1.0+2.0i"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; strings"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameLabel","value":"c1:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"this is a string"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameLabel","value":"c2:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringSingle","value":"{"}, + {"type":"LiteralString","value":"\n this is a multiline string\n that is indentation-agnostic\n"}, + {"type":"LiteralStringSingle","value":"}"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"NameLabel","value":"c3:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"{:"}, + {"type":"LiteralString","value":"\n this is\n a verbatim\n multiline string\n which will remain exactly\n as the original\n"}, + {"type":"LiteralStringDouble","value":":}"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"NameLabel","value":"c4:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringSingle","value":"{"}, + {"type":"LiteralString","value":"\n this is a multiline string\n with "}, + {"type":"LiteralStringInterpol","value":"|"}, + {"type":"Name","value":"a1"}, + {"type":"LiteralStringInterpol","value":"|"}, + {"type":"LiteralString","value":" lines.\n"}, + {"type":"LiteralStringSingle","value":"}"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"NameLabel","value":"annotatedStrings:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"{"}, + {"type":"LiteralStringInterpol","value":"!md"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"Text","value":" # This is a markdown example\n\n I'm a paragraph\n"}, + {"type":"Keyword","value":"\n \u003e "}, + {"type":"GenericEmph","value":"I'm a blockquote\n"}, + {"type":"Text","value":"\n ``"}, + {"type":"LiteralStringBacktick","value":"`c\n #include \u003cstdio.h\u003e\n int main() {\n char * name = \"World\";\n printf(\"Hello, %s!\", name);\n printf( \"I'm a highlighted C code\"\n \"inside Markdown highlighted code,\"\n \"inside Arturo. Awesome!\"\n );\n return 0;\n }\n `"}, + {"type":"Text","value":"``\n"}, + {"type":"LiteralStringDouble","value":"}"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"NameLabel","value":"smartString:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringSingle","value":"»"}, + {"type":"LiteralString","value":"I'm a string until the end of line ; I'm not a comment"}, + {"type":"LiteralStringSingle","value":"\n"}, + {"type":"NameLabel","value":"safeString:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"«««"}, + {"type":"LiteralString","value":"I'm a safe string. 🙂"}, + {"type":"LiteralStringDouble","value":"»»»"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; I'm a comment"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; characters"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameLabel","value":"ch:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringChar","value":"`c`"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; blocks/arrays"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameLabel","value":"d:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"LiteralNumberInteger","value":"1"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"2"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"3"}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; dictionaries"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameLabel","value":"e:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameDecorator","value":"#"}, + {"type":"Punctuation","value":"["}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"NameLabel","value":"name:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"John"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"NameLabel","value":"surname:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"Doe"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"NameLabel","value":"age:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"34"}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"NameLabel","value":"likes:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"Name","value":"pizza"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"spaghetti"}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; yes, functions are values too"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameLabel","value":"f:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltin","value":"function"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"Name","value":"x"}, + {"type":"Punctuation","value":"]["}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"LiteralNumberInteger","value":"2"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"x"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; colors - right, you can directly define them as well!"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameLabel","value":"g1:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameConstant","value":"#red"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameLabel","value":"g2:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameConstant","value":"#0077BF"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; dates"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameLabel","value":"h:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltin","value":"now"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; 2021-05-03T17:10:48+02:00"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; logical values"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameLabel","value":"i1:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameConstant","value":"true"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameLabel","value":"i2:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameConstant","value":"false"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameLabel","value":"i3:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameConstant","value":"maybe"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":";---------------------------------"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"CommentSingle","value":"; BASIC OPERATORS"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"CommentSingle","value":";---------------------------------"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; simple arithmetic"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"LiteralNumberInteger","value":"1"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"+"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"1"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e 2"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"LiteralNumberInteger","value":"8"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"-"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"1"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e 7"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"LiteralNumberFloat","value":"4.2"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"-"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberFloat","value":"1.1"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e 3.1"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"LiteralNumberInteger","value":"10"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"2"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e 20"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"LiteralNumberInteger","value":"35"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"/"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"4"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e 8"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"LiteralNumberInteger","value":"35"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"//"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"4"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e 8.75"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"LiteralNumberInteger","value":"2"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"5"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e 32"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"LiteralNumberInteger","value":"5"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"%"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"3"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e 2"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; bitwise operators"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"and"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"3"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"5"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e 1"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"or"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"3"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"5"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e 7"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"xor"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"3"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"5"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e 6"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; pre-defined constants"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"pi"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e 3.141592653589793"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"epsilon"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e 2.718281828459045"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"null"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e null"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameConstant","value":"true"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e true"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameConstant","value":"false"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e false"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":";---------------------------------"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"CommentSingle","value":"; COMPARISON OPERATORS"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"CommentSingle","value":";---------------------------------"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; equality"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"LiteralNumberInteger","value":"1"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"="}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"1"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e true"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"LiteralNumberInteger","value":"2"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"="}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"1"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e false"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; inequality"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"LiteralNumberInteger","value":"1"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"\u003c\u003e"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"1"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e false"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"LiteralNumberInteger","value":"2"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"\u003c\u003e"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"1"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e true"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; more comparisons"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"LiteralNumberInteger","value":"1"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"\u003c"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"10"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e true"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"LiteralNumberInteger","value":"1"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"=\u003c"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"10"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e true"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"LiteralNumberInteger","value":"10"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"=\u003c"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"10"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e true"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"LiteralNumberInteger","value":"1"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"\u003e"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"10"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e false"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"LiteralNumberInteger","value":"1"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"\u003e="}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"10"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e false"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"LiteralNumberInteger","value":"11"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"\u003e="}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"10"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e true"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":";---------------------------------"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"CommentSingle","value":"; CONDITIONALS"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"CommentSingle","value":";---------------------------------"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; logical operators"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"and?"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameConstant","value":"true"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameConstant","value":"true"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e true"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"and?"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameConstant","value":"true"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameConstant","value":"false"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e false"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"or?"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameConstant","value":"true"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameConstant","value":"false"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e true"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"or?"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameConstant","value":"false"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameConstant","value":"false"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e false"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"NameBuiltin","value":"and?"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"LiteralNumberInteger","value":"1"}, + {"type":"Operator","value":"="}, + {"type":"LiteralNumberInteger","value":"2"}, + {"type":"Punctuation","value":"]["}, + {"type":"LiteralNumberInteger","value":"2"}, + {"type":"Operator","value":"\u003c"}, + {"type":"LiteralNumberInteger","value":"3"}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e false"}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"CommentSingle","value":"; (the second block will not be evaluated)"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; simple if statements"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"if"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"2"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"\u003e"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"1"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltin","value":"print"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"yes!"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; yes!"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"if"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"3"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"\u003c\u003e"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"2"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameDecorator","value":"-\u003e"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltin","value":"print"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"true!"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; true!"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; if/else statements"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"if?"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"2"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"\u003e"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"3"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameDecorator","value":"-\u003e"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltin","value":"print"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"2 is greater than 3"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"else"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameDecorator","value":"-\u003e"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltin","value":"print"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"2 is not greater than 3"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; 2 is not greater than 3"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; switch statements"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"switch"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"2"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"\u003e"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"3"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameDecorator","value":"-\u003e"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltin","value":"print"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"2 is greater than 3"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"NameDecorator","value":"-\u003e"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltin","value":"print"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"2 is not greater than 3"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; 2 is not greater than 3"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"NameLabel","value":"a:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"("}, + {"type":"LiteralNumberInteger","value":"2"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"\u003e"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"3"}, + {"type":"Punctuation","value":")["}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"yes"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"Punctuation","value":"]["}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"no"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; a: \"no\""}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameLabel","value":"a:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"("}, + {"type":"LiteralNumberInteger","value":"2"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"\u003e"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"3"}, + {"type":"Punctuation","value":")?"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameDecorator","value":"-\u003e"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"yes"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameDecorator","value":"-\u003e"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"no"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; a: \"no\" (exactly the same as above)"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; case/when statements"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"case"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"LiteralNumberInteger","value":"1"}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"NameBuiltin","value":"when?"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"Operator","value":"\u003e"}, + {"type":"LiteralNumberInteger","value":"2"}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameDecorator","value":"-\u003e"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltin","value":"print"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"1 is greater than 2. what?!"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"NameBuiltin","value":"when?"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"Operator","value":"\u003c"}, + {"type":"LiteralNumberInteger","value":"0"}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameDecorator","value":"-\u003e"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltin","value":"print"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"1 is less than 0. nope..."}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"NameBuiltin","value":"else"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameDecorator","value":"-\u003e"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltin","value":"print"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"here we are!"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; here we are!"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":";---------------------------------"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"CommentSingle","value":"; LOOPS"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"CommentSingle","value":";---------------------------------"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; with `loop`"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameLabel","value":"arr:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"LiteralNumberInteger","value":"1"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"4"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"5"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"3"}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"loop"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"arr"}, + {"type":"TextWhitespace","value":" "}, + {"type":"KeywordDeclaration","value":"'x"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"NameBuiltin","value":"print"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"x ="}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"x"}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"CommentSingle","value":"; x = 1"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"CommentSingle","value":"; x = 4"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"CommentSingle","value":"; x = 5"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"CommentSingle","value":"; x = 3"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; with loop and custom index"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"loop"}, + {"type":"NameAttribute","value":".with:"}, + {"type":"KeywordDeclaration","value":"'i"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"arr"}, + {"type":"TextWhitespace","value":" "}, + {"type":"KeywordDeclaration","value":"'x"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"NameBuiltin","value":"print"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"item at position"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"i"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"=\u003e"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"x"}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"CommentSingle","value":"; item at position 0 =\u003e 1"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"CommentSingle","value":"; item at position 1 =\u003e 4"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"CommentSingle","value":"; item at position 2 =\u003e 5"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"CommentSingle","value":"; item at position 3 =\u003e 3"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; using ranges"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"loop"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"1"}, + {"type":"Operator","value":"."}, + {"type":"NameAttribute","value":".3"}, + {"type":"TextWhitespace","value":" "}, + {"type":"KeywordDeclaration","value":"'x"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameDecorator","value":"-\u003e"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; since it's a single statement"}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"NameBuiltin","value":"print"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"x"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; there's no need for [block] notation"}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"CommentSingle","value":"; we can wrap it up using the `-\u003e` syntactic sugar"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"NameBuiltin","value":"loop"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringChar","value":"`a`"}, + {"type":"Operator","value":".."}, + {"type":"LiteralStringChar","value":"`c`"}, + {"type":"TextWhitespace","value":" "}, + {"type":"KeywordDeclaration","value":"'ch"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameDecorator","value":"-\u003e"}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"NameBuiltin","value":"print"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"ch"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"CommentSingle","value":"; a"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"CommentSingle","value":"; b"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"CommentSingle","value":"; c"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; picking multiple items"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"loop"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"1"}, + {"type":"Operator","value":"."}, + {"type":"NameAttribute","value":".10"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"Name","value":"x"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"y"}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameDecorator","value":"-\u003e"}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"NameBuiltin","value":"print"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"x ="}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"x"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":", y ="}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"y"}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"CommentSingle","value":"; x = 1 , y = 2"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"CommentSingle","value":"; x = 3 , y = 4"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"CommentSingle","value":"; x = 5 , y = 6"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"CommentSingle","value":"; x = 7 , y = 8"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"CommentSingle","value":"; x = 9 , y = 10"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; looping through a dictionary"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameLabel","value":"dict:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameDecorator","value":"#"}, + {"type":"Punctuation","value":"["}, + {"type":"NameLabel","value":"name:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"John"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"Punctuation","value":","}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameLabel","value":"surname:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"Doe"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"Punctuation","value":","}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameLabel","value":"age:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"34"}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"loop"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"dict"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"Name","value":"key"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"value"}, + {"type":"Punctuation","value":"]["}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"NameBuiltin","value":"print"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"Name","value":"key"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"-\u003e"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"value"}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"CommentSingle","value":"; name -\u003e John"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"CommentSingle","value":"; surname -\u003e Doe"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"CommentSingle","value":"; age -\u003e 34"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; while loops"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameLabel","value":"i:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltin","value":"new"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"0"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"while"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"Name","value":"i"}, + {"type":"Operator","value":"\u003c"}, + {"type":"LiteralNumberInteger","value":"3"}, + {"type":"Punctuation","value":"]["}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"NameBuiltin","value":"print"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"i ="}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"i"}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"NameBuiltin","value":"inc"}, + {"type":"TextWhitespace","value":" "}, + {"type":"KeywordDeclaration","value":"'i"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"CommentSingle","value":"; i = 0"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"CommentSingle","value":"; i = 1"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"CommentSingle","value":"; i = 2"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":";---------------------------------"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"CommentSingle","value":"; STRINGS"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"CommentSingle","value":";---------------------------------"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; case"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameLabel","value":"a:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"tHis Is a stRinG"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"print"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltin","value":"upper"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"a"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; THIS IS A STRING"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"print"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltin","value":"lower"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"a"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; this is a string"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"print"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltin","value":"capitalize"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"a"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; THis Is a stRinG"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; concatenation"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameLabel","value":"a:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"Hello "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"++"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"World!"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; a: \"Hello World!\""}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; strings as an array"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"split"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"hello"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e [h e l l o]"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"split"}, + {"type":"NameAttribute","value":".words"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"hello world"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e [hello world]"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"NameBuiltin","value":"print"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltin","value":"first"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"hello"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; h"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"print"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltin","value":"last"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"hello"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; o"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; conversion"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"to"}, + {"type":"TextWhitespace","value":" "}, + {"type":"KeywordType","value":":string"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"123"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e \"123\""}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"to"}, + {"type":"TextWhitespace","value":" "}, + {"type":"KeywordType","value":":integer"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"123"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e 123"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; joining strings together"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"join"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"hello"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"world"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e \"helloworld\""}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"join"}, + {"type":"NameAttribute","value":".with:"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"-"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"hello"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"world"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e \"hello-world\""}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; string interpolation"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameLabel","value":"x:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"2"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"print"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"~"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"x = "}, + {"type":"LiteralStringInterpol","value":"|"}, + {"type":"Name","value":"x"}, + {"type":"LiteralStringInterpol","value":"|"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; x = 2"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; interpolation with `print`"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"print"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"x ="}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"x"}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; x = 2"}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"CommentSingle","value":"; (`print` works by calculating the given block"}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"CommentSingle","value":"; and joining the different values as strings"}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"CommentSingle","value":"; with a single space between them)"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; templates"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"print"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltin","value":"render"}, + {"type":"NameAttribute","value":".template"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringSingle","value":"{"}, + {"type":"LiteralString","value":"\n "}, + {"type":"LiteralStringInterpol","value":"\u003c||"}, + {"type":"Operator","value":"="}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltin","value":"switch"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"x"}, + {"type":"Operator","value":"="}, + {"type":"LiteralNumberInteger","value":"2"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringInterpol","value":"||\u003e"}, + {"type":"LiteralString","value":"\n Yes, x = 2\n "}, + {"type":"LiteralStringInterpol","value":"\u003c||"}, + {"type":"Punctuation","value":"]["}, + {"type":"LiteralStringInterpol","value":"||\u003e"}, + {"type":"LiteralString","value":"\n No, x is not 2\n "}, + {"type":"LiteralStringInterpol","value":"\u003c||"}, + {"type":"Punctuation","value":"]"}, + {"type":"LiteralStringInterpol","value":"||\u003e"}, + {"type":"LiteralString","value":"\n"}, + {"type":"LiteralStringSingle","value":"}"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; Yes, x = 2"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; matching"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"prefix?"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"hello"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"he"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e true"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"suffix?"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"hello"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"he"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e false"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"NameBuiltin","value":"contains?"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"hello"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"ll"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e true"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"contains?"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"hello"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"he"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e true"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"contains?"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"hello"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"x"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e false"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"NameBuiltin","value":"in?"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"ll"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"hello"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e true"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"in?"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"x"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"hello"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e false"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":";---------------------------------"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"CommentSingle","value":"; BLOCKS"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"CommentSingle","value":";---------------------------------"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; calculate a block"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameLabel","value":"arr:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"LiteralNumberInteger","value":"1"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"1"}, + {"type":"Operator","value":"+"}, + {"type":"LiteralNumberInteger","value":"1"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"1"}, + {"type":"Operator","value":"+"}, + {"type":"LiteralNumberInteger","value":"1"}, + {"type":"Operator","value":"+"}, + {"type":"LiteralNumberInteger","value":"1"}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameDecorator","value":"@"}, + {"type":"Name","value":"arr"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e [1 2 3]"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; execute a block"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameLabel","value":"sth:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"NameBuiltin","value":"print"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"Hello world"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; this is perfectly valid,"}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"CommentSingle","value":"; could contain *anything*"}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"CommentSingle","value":"; and will not be executed..."}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"NameBuiltin","value":"do"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"sth"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; Hello world"}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"CommentSingle","value":"; (...until we tell it to)"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; array indexing"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameLabel","value":"arr:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"zero"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"one"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"two"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"three"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"print"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltin","value":"first"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"arr"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; zero"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"print"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"arr"}, + {"type":"NameProperty","value":"\\0"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; zero"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"print"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltin","value":"last"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"arr"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; three"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"print"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"arr"}, + {"type":"NameProperty","value":"\\3"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; three"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"NameLabel","value":"x:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"2"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"print"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltin","value":"get"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"arr"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"x"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; two"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"print"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"arr"}, + {"type":"Operator","value":"\\"}, + {"type":"Punctuation","value":"["}, + {"type":"Name","value":"x"}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; two"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; setting an array element"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"Name","value":"arr"}, + {"type":"NameProperty","value":"\\0:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"nada"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"set"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"arr"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"2"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"dos"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"print"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"arr"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; nada one dos three"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; adding elements to an array"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameLabel","value":"arr:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltin","value":"new"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"[]"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"KeywordDeclaration","value":"'arr"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"++"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"one"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"KeywordDeclaration","value":"'arr"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"++"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"two"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"print"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"arr"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; one two"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; remove elements from an array"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameLabel","value":"arr:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltin","value":"new"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"one"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"two"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"three"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"four"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"KeywordDeclaration","value":"'arr"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"--"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"two"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; arr: [\"one\" \"three\" \"four\"]"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"remove"}, + {"type":"TextWhitespace","value":" "}, + {"type":"KeywordDeclaration","value":"'arr"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameAttribute","value":".index"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"0"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; arr: [\"three\" \"four\"]"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; getting the size of an array"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameLabel","value":"arr:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"one"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"2"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"three"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"4"}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"print"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltin","value":"size"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"arr"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; 4"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; getting a slice of an array"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"print"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltin","value":"slice"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"one"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"two"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"three"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"four"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"0"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"1"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; one two"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; check if array contains a specific element"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"print"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltin","value":"contains?"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"arr"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"one"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; true"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"print"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltin","value":"contains?"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"arr"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"five"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; false"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; sorting array"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameLabel","value":"arr:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"LiteralNumberInteger","value":"1"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"5"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"3"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"2"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"4"}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"sort"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"arr"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e [1 2 3 4 5]"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"sort"}, + {"type":"NameAttribute","value":".descending"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"arr"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e [5 4 3 2 1]"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; mapping values"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"map"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"1"}, + {"type":"Operator","value":"."}, + {"type":"NameAttribute","value":".10"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"Name","value":"x"}, + {"type":"Punctuation","value":"]["}, + {"type":"LiteralNumberInteger","value":"2"}, + {"type":"Operator","value":"*"}, + {"type":"Name","value":"x"}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e [2 4 6 8 10 12 14 16 18 20]"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"map"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"1"}, + {"type":"Operator","value":"."}, + {"type":"NameAttribute","value":".10"}, + {"type":"TextWhitespace","value":" "}, + {"type":"KeywordDeclaration","value":"'x"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameDecorator","value":"-\u003e"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"2"}, + {"type":"Operator","value":"*"}, + {"type":"Name","value":"x"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; same as above"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"map"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"1"}, + {"type":"Operator","value":"."}, + {"type":"NameAttribute","value":".10"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"=\u003e"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"LiteralNumberInteger","value":"2"}, + {"type":"Operator","value":"*"}, + {"type":"NameDecorator","value":"\u0026"}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; same as above"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"map"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"1"}, + {"type":"Operator","value":"."}, + {"type":"NameAttribute","value":".10"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"=\u003e"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"LiteralNumberInteger","value":"2"}, + {"type":"Operator","value":"*"}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; same as above"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; selecting/filtering array values"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"select"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"1"}, + {"type":"Operator","value":"."}, + {"type":"NameAttribute","value":".10"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"Name","value":"x"}, + {"type":"Punctuation","value":"]["}, + {"type":"NameBuiltin","value":"odd?"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"x"}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e [1 3 5 7 9]"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"select"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"1"}, + {"type":"Operator","value":"."}, + {"type":"NameAttribute","value":".10"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"=\u003e"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltin","value":"odd?"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; same as above"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"NameBuiltin","value":"filter"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"1"}, + {"type":"Operator","value":"."}, + {"type":"NameAttribute","value":".10"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"=\u003e"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltin","value":"odd?"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e [2 4 6 8 10]"}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"CommentSingle","value":"; (now, we leave out all odd numbers -"}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"CommentSingle","value":"; while select keeps them)"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; misc operations"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameLabel","value":"arr:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"one"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"2"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"three"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"4"}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"reverse"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"arr"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e [4 \"three\" 2 \"one\"]"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"shuffle"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"arr"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e [2 4 \"three\" \"one\"]"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"unique"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"LiteralNumberInteger","value":"1"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"2"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"3"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"2"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"3"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"1"}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e [1 2 3]"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"permutate"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"LiteralNumberInteger","value":"1"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"2"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"3"}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e [[1 2 3] [1 3 2] [3 1 2] [2 1 3] [2 3 1] [3 2 1]]"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"take"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"1"}, + {"type":"Operator","value":"."}, + {"type":"NameAttribute","value":".10"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"3"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e [1 2 3]"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"repeat"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"LiteralNumberInteger","value":"1"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"2"}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"3"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e [1 2 1 2 1 2]"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":";---------------------------------"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"CommentSingle","value":"; FUNCTIONS"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"CommentSingle","value":";---------------------------------"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; declaring a function"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameLabel","value":"f:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltin","value":"function"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"Name","value":"x"}, + {"type":"Punctuation","value":"]["}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"2"}, + {"type":"Operator","value":"*"}, + {"type":"Name","value":"x"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameLabel","value":"f:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltin","value":"function"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"Name","value":"x"}, + {"type":"Punctuation","value":"]"}, + {"type":"NameDecorator","value":"-\u003e"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"2"}, + {"type":"Operator","value":"*"}, + {"type":"Name","value":"x"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; same as above"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameLabel","value":"f:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameDecorator","value":"$"}, + {"type":"Punctuation","value":"["}, + {"type":"Name","value":"x"}, + {"type":"Punctuation","value":"]"}, + {"type":"NameDecorator","value":"-\u003e"}, + {"type":"LiteralNumberInteger","value":"2"}, + {"type":"Operator","value":"*"}, + {"type":"Name","value":"x"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; same as above (only using the `$` alias"}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"CommentSingle","value":"; for the `function`... function)"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; calling a function"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"Name","value":"f"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"10"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; =\u003e 20"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; returning a value"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameLabel","value":"g:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltin","value":"function"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"Name","value":"x"}, + {"type":"Punctuation","value":"]["}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"NameBuiltin","value":"if"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"x"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"\u003c"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"2"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameDecorator","value":"-\u003e"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltin","value":"return"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"0"}, + {"type":"TextWhitespace","value":"\n\n "}, + {"type":"NameLabel","value":"res:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"0"}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"NameBuiltin","value":"loop"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"0"}, + {"type":"Operator","value":"."}, + {"type":"NameAttribute","value":".x"}, + {"type":"TextWhitespace","value":" "}, + {"type":"KeywordDeclaration","value":"'z"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"NameLabel","value":"res:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"res"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"+"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"z"}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"NameBuiltin","value":"return"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"res"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":";---------------------------------"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"CommentSingle","value":"; CUSTOM TYPES"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"CommentSingle","value":";---------------------------------"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; defining a custom type"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"define"}, + {"type":"TextWhitespace","value":" "}, + {"type":"KeywordType","value":":person"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; define a new custom type \"Person\""}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"Name","value":"name"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; with fields: name, surname, age"}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"Name","value":"surname"}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"Name","value":"age"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"Punctuation","value":"]["}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"CommentSingle","value":"; with custom post-construction initializer"}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"NameBuiltinPseudo","value":"init:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"NameBuiltinPseudo","value":"this"}, + {"type":"NameProperty","value":"\\name:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltin","value":"capitalize"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltinPseudo","value":"this"}, + {"type":"NameProperty","value":"\\name"}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":"\n\n "}, + {"type":"CommentSingle","value":"; custom print function"}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"NameLabel","value":"print:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"NameBuiltin","value":"render"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"NAME: "}, + {"type":"LiteralStringInterpol","value":"|"}, + {"type":"NameBuiltinPseudo","value":"this"}, + {"type":"NameProperty","value":"\\name"}, + {"type":"LiteralStringInterpol","value":"|"}, + {"type":"LiteralString","value":", SURNAME: "}, + {"type":"LiteralStringInterpol","value":"|"}, + {"type":"NameBuiltinPseudo","value":"this"}, + {"type":"NameProperty","value":"\\surname"}, + {"type":"LiteralStringInterpol","value":"|"}, + {"type":"LiteralString","value":", AGE: "}, + {"type":"LiteralStringInterpol","value":"|"}, + {"type":"NameBuiltinPseudo","value":"this"}, + {"type":"NameProperty","value":"\\age"}, + {"type":"LiteralStringInterpol","value":"|"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":"\n\n "}, + {"type":"CommentSingle","value":"; custom comparison operator"}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"NameLabel","value":"compare:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"KeywordDeclaration","value":"'age"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; create a method for our custom type"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameLabel","value":"sayHello:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltin","value":"function"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"NameBuiltinPseudo","value":"this"}, + {"type":"Punctuation","value":"]["}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"NameBuiltin","value":"ensure"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameDecorator","value":"-\u003e"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltin","value":"is?"}, + {"type":"TextWhitespace","value":" "}, + {"type":"KeywordType","value":":person"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltinPseudo","value":"this"}, + {"type":"TextWhitespace","value":"\n\n "}, + {"type":"NameBuiltin","value":"print"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"Hello"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltinPseudo","value":"this"}, + {"type":"NameProperty","value":"\\name"}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; create new objects of our custom type"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameLabel","value":"a:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltin","value":"to"}, + {"type":"TextWhitespace","value":" "}, + {"type":"KeywordType","value":":person"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"John"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"Doe"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"34"}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; let's create 2 \"Person\"s"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameLabel","value":"b:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltin","value":"to"}, + {"type":"TextWhitespace","value":" "}, + {"type":"KeywordType","value":":person"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"jane"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"Doe"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"33"}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; and another one"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; call pseudo-inner method"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"Name","value":"sayHello"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"a"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; Hello John"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"Name","value":"sayHello"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"b"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; Hello Jane"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; access object fields"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"print"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"The first person's name is:"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"a"}, + {"type":"NameProperty","value":"\\name"}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; The first person's name is: John"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"print"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"The second person's name is:"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"b"}, + {"type":"NameProperty","value":"\\name"}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; The second person's name is: Jane"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; changing object fields"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"Name","value":"a"}, + {"type":"NameProperty","value":"\\name:"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"LiteralString","value":"Bob"}, + {"type":"LiteralStringDouble","value":"\""}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"Name","value":"sayHello"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"a"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; Hello Bob"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; verifying object type"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"print"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltin","value":"type"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"a"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; :person"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"print"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltin","value":"is?"}, + {"type":"TextWhitespace","value":" "}, + {"type":"KeywordType","value":":person"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"a"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; true"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; printing objects"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"print"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"a"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; NAME: John, SURNAME: Doe, AGE: 34"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"CommentSingle","value":"; sorting user objects (using custom comparator)"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"sort"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameDecorator","value":"@"}, + {"type":"Punctuation","value":"["}, + {"type":"Name","value":"a"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"b"}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; Jane..., John..."}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameBuiltin","value":"sort"}, + {"type":"NameAttribute","value":".descending"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameDecorator","value":"@"}, + {"type":"Punctuation","value":"["}, + {"type":"Name","value":"a"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"b"}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":" "}, + {"type":"CommentSingle","value":"; John..., Jane..."}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"NameLabel","value":"eofString:"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"LiteralStringSingle","value":"---"}, + {"type":"LiteralString","value":"\nI'm an end of file\nMultiline string.\n"} +]