mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +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;
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
    }
 | 
						|
}
 |