Gearbox

Gearbox is an esoteric programming language based on mechanical gears.
=Overview=
Gearbox code begins with the declaration of the original gear, which will spin all the other gears. The syntax for declaring a gear is xn? where x is the type of the gear, n is the number of teeth of the gear and ? are additional properties a gear might have. For example g12 is a simple gear with 12 teeth.
There are currently three types of gears in gearbox:
Symbol	Name 	Description
g 	Gear 	A simple gear.
c 	Counter	A gear which indicates its current rotation.
e 	Ender 	A gear which is going to stop the machine, and by extension the program, once it fully rotates.
== Connections ==
There are two ways to connect gears: linear and parallel. Linear connection is a simple arrangement where the driver gear rotates the follower gear. Only two gears are involved in a linear connection. Parallel connection is one where follower gears are placed on the same axis as the driver gear and are therefore rotating with it. There is no limit on how many gears can be in parallel connection.
A follower gear in linear rotates in the oppose direction of its driver gear. Its rotational speed is given by ωf = ωd * ( nd / nf ) where ωf is the rotational speed of the follower gear, ωd is the rotational speed of the driver gear, nd is the number of teeth the driver gear has and nf is the number of teeth the follower gear has.
Follower gears in parallel connection rotate in the same direction as their driver gear. Their rotational speed is the same as their driver gear's rotational speed.
=== Connection Syntax Examples ===
Three gears with 12 teeth in a linear connection.
g12g12g12
Three gears with 12 teeth connected in a parallel connection to a gear with 6 teeth.
g6[g12][g12][g12]
Three gears with 12 teeth connected in a parallel connection and a gear with 24 teeth connected in a linear connection to a gear with 6 teeth.
g6[g12][g12][g12]g24
==Counter==
Counter gear has some additional properties: symbols (required) and label (optional). Symbols are what a counter gear displays as it rotates. Label denotes the group of counter gears a gear belongs to and is displayed alongside it.
A counter gear with 10 teeth, symbols 0-9 and label "Numbers":
c10{"0","1","2","3","4","5","6","7","8","9"}l"Numbers"
=Execution Details=
By default, the original gear will be rotated as fast as possible, however there is an option to rotate it at a given speed.
It is possible to start the program at a different point in execution by simply starting it with the original gear already being rotated.
=Examples=
Examples of gearbox code.
==Hello World==
g1
g1c214{"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","Y","X","Z"}
g1c375{"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","Y","X","Z"}
g1c136{"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","Y","X","Z"}
g1c136{"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","Y","X","Z"}
g1c107{"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","Y","X","Z"}
g1c220{" ",".",",","\"","'","-","?",":","!",";"}
g1c1320{" ",".",",","\"","'","-","?",":","!",";"}
g1c68{"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","Y","X","Z"}
g1c107{"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","Y","X","Z"}
g1c88{"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","Y","X","Z"}
g1c136{"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","Y","X","Z"}
g1c500{"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","Y","X","Z"}
g1c73{" ",".",",","\"","'","-","?",":","!",";"}
g1e60
==Clock==
g43200
g1c60 {"0","1","2","3","4","5"} l"Seconds : "
g1c10 {"0","1","2","3","4","5","6","7","8","9"} l"Seconds : "
g1c3600 {"0","1","2","3","4","5"} l"Minutes : "
g1c600 {"0","1","2","3","4","5","6","7","8","9"} l"Minutes : "
g1c43200 {"N","I","II","III","IV","V","VI","VII","VIII","IX","X","XI","XII"} l"Hours : "
==Counter==
g1
g1c1000000{"0","1","2","3","4","5","6","7","8","9"}
g1c100000{"0","1","2","3","4","5","6","7","8","9"}
g1c10000{"0","1","2","3","4","5","6","7","8","9"}
g1c1000{"0","1","2","3","4","5","6","7","8","9"}
g1c100{"0","1","2","3","4","5","6","7","8","9"}
g1c10{"0","1","2","3","4","5","6","7","8","9"}
g1e999999
Category:Languages
Category:Declarative paradigm
Category:2022
Category:Reversible computing
Category:Concurrent programming
Category:Unknown computational class
Category:Output only
Category:Implemented
Category:Low-level
Category:Thematic