At the beginning of the program, you must have "GarbageScript`Import`Java GarbageScript`Import`Flash GarbageScript`Import`Silverlight" or "TrashScript`PullItIn`Java TrashScript`PullItIn`Flash TrashScript`PullItIn`Silverlight" to enable program running. All error messages are simply "You messed up your code." All commands come from either the GarbageScript or TrashScript superclass, and arguments are separated by grave marks (`) For example, "GarbageScript`Puts`const`Hello_World!" outputs Hello_World! on the screen. Spaces are used to separate commands, not newlines, so each line is the equivalent to 1 function. All variables have to have the "‰" prefix. Variables are to be initialized with the value 64. Strings are to be initialized with the value "You're a moron." The math commands are reversed ("Add" subtracts, "Subtract" adds, "Multiply" divides, and "Divide" multiplies). The Pull command (input from console) only inputs strings. The conditional statement (WhatIf) only works on two variables, and is not nestable. Variables expire after 100 commands. Expired variables cause program lag (1 MS per command per variable expired) and are not retrievable. To prevent variable expiration, you must renew them before they expire, or delete them when you're finished. The random number generator always returns 21. The wait command runs in 771sts of a second, and sometimes waits an extra 1/771. Functions are to be on newlines starting with the * symbol followed by the function name. All functions are expected to have a single additional space at the end of the line. Comments are part of the normal command system.
#+BEGIN_SRC open System open System.IO open System.Collections.Generic open System.Threading let mutable (functions:string[]) = [||] let mutable variablecnt = new Dictionary() let mutable stringcnt = new Dictionary() let mutable temp = new Dictionary() let trash = new List() let variables = new Dictionary() let strings = new Dictionary() let rec runprogram (program :string) (startval :int) = let commands = program.Split [|' '|] let mutable passed = 0 let mutable i = startval while i "GarbageScript`" && commands.[i].Substring(0, 12) "TrashScript`" then printf "You messed up your code." while true do 0 |> ignore else let args = commands.[i].Split [|'`'|] for KeyValue(j, k) in variablecnt do temp.Add(j, k+1) if temp.[j]=100 then trash.Add(0) variables.Remove(j) |> ignore variablecnt () for KeyValue(j, k) in stringcnt do temp.Add(j, k+1) if temp.[j]=100 then trash.Add(0) variables.Remove(j) |> ignore stringcnt () for j in trash do Thread.Sleep(1) if (args.[1]="Print" || args.[1]="Puts" || args.[1]="Echo") && (args.[2]="aoace" || args.[2]="const") then printf "%s" args.[3] passed "‰" then printf "You messed up your code." while true do () variables.Add(args.[4], 64) variablecnt.Add(args.[4], 0) passed "‰" then printf "You messed up your code." while true do () strings.Add(args.[4], "You're a moron.") stringcnt.Add(args.[4], 0) passed "Not" && args.[5]"n't") then passed variables.[args.[5]] then while commands.[i]"GarbageScript`End`WhatIf" do i "GarbageScript`End`WhatIf" do i (args.[2]+"`"+args.[3]+"`"+args.[4]) do i ignore stringcnt.Remove(args.[3]) |> ignore passed ignore variablecnt.Remove(args.[3]) |> ignore passed 11 then if args.[1].Substring(0,11)="IGNORETHIS:" then passed 16 then if args.[1].Substring(0,16)="PAYNOMINDTOTHIS:" then passed ignore passed ] let main (args:string[]) = if args.Length 0 then let (program:string) = File.ReadAllText(args.[0]) if program.Substring(0, 85)="GarbageScript`Import`Java GarbageScript`Import`Flash GarbageScript`Import`Silverlight" || program.Substring(0, 85)="TrashScript`PullItIn`Java TrashScript`PullItIn`Flash TrashScript`PullItIn`Silverlight" then let program = program.Substring(86) functions #+END_SRC
Can you post an example of how it might look a code with GS?