mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			153 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			153 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| Strict
 | |
| 
 | |
| ' single line comment
 | |
| 
 | |
| #rem
 | |
| multi
 | |
| line
 | |
| comment
 | |
| #end
 | |
| 
 | |
| #rem
 | |
| nested
 | |
| #rem
 | |
| multi
 | |
| line
 | |
| #end
 | |
| comment
 | |
| #end
 | |
| 
 | |
| Import mojo
 | |
| 
 | |
| Const ONECONST:Int = 1
 | |
| Const TWOCONST := 2
 | |
| Const THREECONST := 3, FOURCONST:Int = 4
 | |
| 
 | |
| Global someVariable:Int = 4
 | |
| 
 | |
| ' sample class from the documentation
 | |
| Class Game Extends App
 | |
| 
 | |
|     Function New()
 | |
|     End
 | |
| 
 | |
|     Function DrawSpiral(clock)
 | |
|         Local w=DeviceWidth/2
 | |
|         For Local i#=0 Until w*1.5 Step .2
 | |
|             Local x#,y#
 | |
|             x=w+i*Sin(i*3+clock)
 | |
|             y=w+i*Cos(i*2+clock)
 | |
|             DrawRect  x,y,1,1
 | |
|         Next
 | |
|         hitbox.Collide(event.pos)
 | |
|     End
 | |
| 
 | |
|     Field updateCount
 | |
| 
 | |
|     Method OnCreate()
 | |
|         Print "spiral"
 | |
| 
 | |
|         SetUpdateRate 60
 | |
|     End
 | |
| 
 | |
|     Method OnUpdate()
 | |
|         updateCount+=1
 | |
|     End
 | |
| 
 | |
|     Method OnRender()
 | |
|         Cls
 | |
|         DrawSpiral updateCount
 | |
|         DrawSpiral updateCount*1.1
 | |
|     End
 | |
| 
 | |
| End
 | |
| 
 | |
| Class Enemy
 | |
|   Method Die () Abstract
 | |
| End
 | |
| 
 | |
| ' extending
 | |
| Class Hoodlum Extends Enemy
 | |
|     ' field
 | |
|     Field testField:Bool = True
 | |
| 
 | |
|     ' naming class with modulepath
 | |
|     Local currentNode:list.Node<Vector2D>
 | |
| 
 | |
|     Method Die ()
 | |
|         Print "B'oss, he-- he killed me, b'oss!"
 | |
|     End
 | |
| End
 | |
| 
 | |
| ' extending with generics
 | |
| Class VectorNode Extends Node<Vector2D>
 | |
| End
 | |
| 
 | |
| ' interfaces
 | |
| Interface Computer
 | |
|   Method Boot ()
 | |
|   Method Process ()
 | |
|   Method Display ()
 | |
| End
 | |
| 
 | |
| Class PC Implements Computer
 | |
| End
 | |
| 
 | |
| ' array syntax
 | |
| Global listOfStuff:String[42]
 | |
| Global lessStuff:String[5] = listOfStuff[4..8]
 | |
| Global oneStuff:String = listOfStuff[23]
 | |
| 
 | |
| 'a comma separated sequence
 | |
| Global scores:Int[]=[10,20,30]
 | |
| 'a comma separated sequence
 | |
| Global text:String[]=["Hello","There","World"]
 | |
| Global worstCase:worst.List<String[]>
 | |
| 
 | |
| ' string type
 | |
| Global string1:String = "Hello world"
 | |
| Global string2$ = "Hello world"
 | |
| 
 | |
| ' escape characers in strings
 | |
| Global string3 := "Hello~zWorld"
 | |
| Global string4 := "~qHello World~q"
 | |
| Global string5 := "~tIndented~n"
 | |
| Global string6 := "tilda is wavey... ~~"
 | |
| 
 | |
| ' string pseudofunctions
 | |
| Print "  Hello World  ~n".Trim()    ' prints "Hello World"
 | |
| Print "Hello World".ToUpper()       ' prints "HELLO WORLD"
 | |
| 
 | |
| ' Boolean shorttype
 | |
| Global boolVariable1:Bool = True
 | |
| Global boolVariable2? = False
 | |
| 
 | |
| ' number formats
 | |
| Global hexNum1:Int = $3d0dead
 | |
| Global hexNum2% = $CAFEBABE
 | |
| 
 | |
| Global floatNum1:Float = 3.141516
 | |
| Global floatNum2# = 3.141516
 | |
| Global floatNum3 := .141516
 | |
| 
 | |
| ' preprocessor keywords
 | |
| #If TARGET = "android"
 | |
| DoStuff()
 | |
| #ElseIf TARGET = "ios"
 | |
| DoOtherStuff()
 | |
| #End
 | |
| 
 | |
| ' preprocessor variable
 | |
| #SOMETHING = True
 | |
| #Print SOMETHING
 | |
| #If SOMETHING
 | |
| #End
 | |
| 
 | |
| ' operators
 | |
| Global a = 32
 | |
| Global b = 32 ~ 0
 | |
| b ~= 16
 | |
| b |= 16
 | |
| b &= 16
 | |
| Global c = a | b
 |