1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
|
import foo.bar
import quux.*
object noCompression {
method compressedSize(fileSize) {
return fileSize
}
}
object reflate {
method compressedSize(fileSize) {
return fileSize * 0.8
}
}
class Content {
var name
constructor(aName) {
name = aName
}
method isLight() {
return self.size() > 150 * 1024 ** 2
}
method canBeUploadedTo(aRepo) {
return aRepo.canUpload(self)
}
method longName() {
return name.length()
}
}
class TextFile inherits Content {
var lines
constructor(aName, someLines) = super(aName) {
lines = someLines
}
method size() {
return lines.sum({ line => line.size() }) * 16
}
}
class BinaryFile inherits Content {
var bytes
var compressionMethod = noCompression
constructor(aName, someBytes) = super(aName) {
bytes = someBytes
}
method size() {
return compressionMethod.compressedSize(bytes.size())
}
method compressionMethod(aCompressionMethod) {
compressionMethod = aCompressionMethod
}
}
program "aProgram" {
pepita.fly(20)
const t = new Trainer()
t.train(pepita)
}
test "pepita should spent twice the kilometers flown" {
pepita.energy(100)
pepita.fly(20)
assert.equals(60, pepita.energy())
}
mixin Walks {
var walkedDistance = 0
method walk(distance) {
walkedDistance += distance
}
method walkedDistance() = walkedDistance
}
class WalkingBird mixed with Walks {}
mixin M1 {}
mixin M2 {}
class C mixed with M1 and M2 {}
//object Set {
//
//}
object Set {
/*
method add(element){
}
*/
}
package bar {
object foo {
var numbers = [1, 2,3].map({it => it + 1})
var bar = "asd"
var quux = #{}
var ruux = [1, 2, "foo", [1]]
method sayHi() = return "Hi!"
method close() = return true or true and false not true
method sayBye(_some) {
var a = 0
a++
a--
if(1>0) {
return 0
} else {
return 1
}
return 1 === 2
return 1 == 2
}
}
}
|