This repository has been archived on 2024-06-20. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
coffee.pygments/tests/examplefiles/wren/example.wren
PureFox48 a47833dc7b
Add support for Wren language (#2271)
Co-authored-by: Jean Abou Samra <jean@abou-samra.fr>
2022-11-29 02:13:37 +01:00

122 lines
2 KiB
Text

#!/bin/wren
/* IMPORTS */
import "random" for Random as Rand
/* COMMENTS */
// single line comment
/*
multiline comment
/*
nested multiline comment
*/
*/
/* CLASSES & ATTRIBUTES */
#!type = "parent"
class Parent {
#method
static setField (field) {
__field = field
}
construct new(parent) {
_parent = parent
return
}
parent { _parent }
foreign method()
}
#!type = "child"
#group(
multiple,
lines = true
)
class Child is Parent {
construct new(parent, child) {
super(parent)
_child = child
}
child { _child }
toString { this.parent }
}
/* VARIABLES & STRINGS */
var rand = Rand.new()
var name = """David"""
var fullName = "%(name) Smith"
var firstChild = Child.new("Philip Smith", fullName)
var age = 21
var weight = 70.25
var male = true
var sex = male ? "M" : "F"
var address = """
"House name" 12 Any Street
Some Town
\t %("Some Country") "
"""
/* LOOPS & CONDITIONALS */
for (i in 1..5) {
if (i == 2) {
continue
} else if (i == 4) {
break
}
System.print(i)
}
var j = 6
while (j <= 1e+1) {
if (j == 8) break
System.print(j)
j = j + 1
}
/* ARITHMETIC OPERATORS */
var a = 1
var b = 2
var c = [-a, a + b, a - b, a * b, a / b, a % b]
var add = c[1]
/* BITWISE OPERATORS */
var d = 3
var e = 4
var f = [~d, d & e, d | e, d ^ e, d << 2, e >> 1]
/* COMPARISON OPERATORS */
var g = 5
var h = 6
var i = [a == b, a != b, a < b, a <= b, a > b, a >= b]
var k = firstChild is Parent
/* FUNCTIONS */
var func = Fn.new { |param|
var z = "this"
System.print(z + " " + param)
}
func.call("function")
/* MISCELLANEOUS */
var hex = 0x12ac
var nul = null
var l = false
var m = true
var n = l && m
var o = l || m
var esc = "\\ \% \" \0 \a \b \t \f \n \r \v \e \x01 \uabcd \Uabcdef01"
var uni = "£ é 😀 ‎🎷"
var map = {"a": 1, "b": 2}
var iex = "%(map["a"] + map[("b")])"
var odd = (1...h).where { |i| i % 2 == 1 }
.toList
var emp = ""