mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 09:40:21 +00:00
LoomScript is the scripting language for the Loom SDK. It has an ActionScript3-like syntax with added C#-esque capabilities. Loom SDK: https://github.com/LoomSDK/LoomSDK
138 lines
3.4 KiB
Plaintext
138 lines
3.4 KiB
Plaintext
package
|
|
{
|
|
import loom.Application;
|
|
|
|
public interface I {}
|
|
public class C {}
|
|
public class B extends C implements I {}
|
|
final public class A extends B {}
|
|
|
|
delegate ToCompute(s:String, o:Object):Number;
|
|
|
|
public enum Enumeration
|
|
{
|
|
foo,
|
|
baz,
|
|
cat,
|
|
}
|
|
|
|
struct P {
|
|
public var x:Number = 0;
|
|
public var y:Number = 0;
|
|
public static operator function =(a:P, b:P):P
|
|
{
|
|
a.x = b.x;
|
|
a.y = b.y;
|
|
|
|
return a;
|
|
}
|
|
}
|
|
|
|
// single-line comment
|
|
|
|
/*
|
|
Multi-line comment
|
|
*/
|
|
|
|
/**
|
|
Doc comment
|
|
*/
|
|
public class SyntaxExercise extends Application
|
|
{
|
|
static public var classVar:String = 'class variable';
|
|
public const CONST:String = 'constant';
|
|
private var _a:A = new A();
|
|
public var _d:ToCompute;
|
|
|
|
override public function run():void
|
|
{
|
|
trace("hello");
|
|
}
|
|
|
|
private function get a():A { return _a; }
|
|
private function set a(value:A):void { _a = value; }
|
|
|
|
private function variousTypes(defaultValue:String = ''):void
|
|
{
|
|
var nil:Object = null;
|
|
var b1:Boolean = true;
|
|
var b2:Boolean = false;
|
|
var n1:Number = 0.123;
|
|
var n2:Number = 12345;
|
|
var n3:Number = 0xfed;
|
|
var s1:String = 'single-quotes with "quotes" inside';
|
|
var s2:String = "double-quotes with 'quotes' inside";
|
|
var f1:Function = function (life:String, universe:Object, ...everything):Number { return 42; };
|
|
var v1:Vector.<Number> = [1, 2];
|
|
var d1:Dictionary.<String, Number> = { 'three': 3, 'four': 4 };
|
|
|
|
_d += f1;
|
|
_d -= f1;
|
|
}
|
|
|
|
private function variousOps():void
|
|
{
|
|
var a = ((100 + 200 - 0) / 300) % 2;
|
|
var b = 100 * 30;
|
|
var d = true && (b > 301);
|
|
var e = 0x10 | 0x01;
|
|
|
|
b++; b--;
|
|
a += 300; a -= 5; a *= 4; a /= 2; a %= 7;
|
|
|
|
var castable1:Boolean = (a is B);
|
|
var castable2:Boolean = (a as B) != null;
|
|
var cast:String = B(a).toString();
|
|
var instanced:Boolean = (_a instanceof A);
|
|
}
|
|
|
|
private function variousFlow():void
|
|
{
|
|
var n:Number = Math.random();
|
|
if (n > 0.6)
|
|
trace('top 40!');
|
|
else if(n > 0.3)
|
|
trace('mid 30!');
|
|
else
|
|
trace('bottom 30');
|
|
|
|
var flip:String = (Math.random() > 0.5) ? 'heads' : 'tails';
|
|
|
|
for (var i = 0; i < 100; i++)
|
|
trace(i);
|
|
|
|
var v:Vector.<String> = ['a', 'b', 'c'];
|
|
for each (var s:String in v)
|
|
trace(s);
|
|
|
|
var d:Dictionary.<String, Number> = { 'one': 1 };
|
|
for (var key1:String in d)
|
|
trace(key1);
|
|
|
|
for (var key2:Number in v)
|
|
trace(key2);
|
|
|
|
while (i > 0)
|
|
{
|
|
i--;
|
|
if (i == 13) continue;
|
|
trace(i);
|
|
}
|
|
|
|
do
|
|
{
|
|
i++;
|
|
}
|
|
while (i < 10);
|
|
|
|
switch (Math.floor(Math.random()) * 3 + 1)
|
|
{
|
|
case 1 : trace('rock'); break;
|
|
case 2 : trace('paper'); break;
|
|
default: trace('scissors'); break;
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|