1 
  2 
  3 
  4 
  5 
  6 
  7 
  8 class SyntaxExample {
  9   
 10   new {
 11     
 12     IO.print("I am a constructor!")
 13     
 14     variables
 15     fields()
 16     
 17     SyntaxExample.fields(1)
 18   }
 19 
 20   
 21   new(a, b) {
 22     print(a, b)
 23     field = a
 24   }
 25 
 26   
 27   variables {
 28     
 29     var hi
 30     var camelCase
 31     var PascalCase
 32     var abc123
 33     var ALL_CAPS
 34   }
 35 
 36   
 37   fields() {
 38     
 39     _under_score = 1
 40     _field = 2
 41   }
 42 
 43   
 44   static fields(a) {
 45     
 46     __a = a
 47   }
 48 
 49   
 50   field=(value) { _field = value }
 51 
 52   
 53   print(a, b) { IO.print(a + b) }
 54 }
 55 
 56 
 57 class ReservedWords is SyntaxExample {
 58   
 59   new {
 60     
 61     super(true, false)
 62     
 63     this.foo
 64     
 65     new SyntaxExample
 66   }
 67 
 68   foo {
 69     
 70     var n = 27
 71     
 72     while (n != 1) if (n % 2 == 0) n = n / 2 else n = 3 * n + 1
 73 
 74     
 75     for (beatle in ["george", "john", "paul", "ringo"]) {
 76       IO.print(beatle)
 77       
 78       break
 79     }
 80 
 81     
 82     return null
 83   }
 84 
 85   imports {
 86     
 87     import "hello"
 88     
 89     import "set" for Set
 90   }
 91 
 92   
 93   foreign static bar
 94   foreign baz(string)
 95   
 96 }
 97 
 98 class literals is SyntaxExample {
 99   booleans { true || false }
100   numbers {
101     0
102     1234
103     -5678
104     3.14159
105     1.0
106     -12.34
107     0xdeadbeef
108     0x1234567890ABCDEF
109   }
110   strings {
111     "hi there"
112     
113     "\0" 
114     "\"" 
115     "\\" 
116     "\a" 
117     "\b" 
118     "\f" 
119     "\n" 
120     "\r" 
121     "\t" 
122     "\v" 
123     
124     IO.print("\u0041\u0b83\u00DE") 
125     
126     IO.print("\x48\x69\x2e") 
127   }
128   ranges {
129     3..8  
130     4...6 
131   }
132   nothing { null }
133 
134   lists {
135     var list = [1, "banana", true]
136     list[0] = 5
137     list[1..2]
138   }
139   maps {
140     var stringMap = {
141       "George": "Harrison",
142       "John": "Lennon",
143       "Paul": "McCartney",
144       "Ringo": "Starr"
145     }
146     var a = 1
147     var weirdMap = {
148       true: 1,
149       false: 0,
150       null: -1,
151       "str": "abc",
152       (1..5): 10,
153       a: 2,
154       _a: 3,
155       __a: 4
156     }
157   }
158 }