2022

2022 is a string-rewriting esolang by User:BoundedBeans. It is not a derivative of 2014. 2022 is different from other string-rewriting esolangs in that it only has one rewriting rule, but what varies is where that rule is applied. The rule is that 2 is replaced with 2022.
==Syntax==
The first line of any 2022 program is the initial state, made only out of 2's and 0's
All subsequent lines follow one of a few formats, inspired by SMETANA:
 Step (n): Go to Step (o).
 Step (n): Swap Step (o) and Step (p).
 Step (n): Replace "2" (q) with "2022".
 Step (n): Remove "0" (q).
 Step (n): Destroy characters (q)-(r).
 Step (n): Increment argument (s) in Step (o).
 Step (n): Decrement argument (s) in Step (o).
 Step (n): Replace argument (s) in Step (o) with user input.
 Step (n): Output argument (s) in Step (o) as a number.
 Step (n): Output argument (s) in Step (o) as a character.
 Step (n): Replace argument (s) in Step (o) by the number of 2's in range (q)-(r).
 Step (n): Print the string.
 Comment: (whatever)
Negative values for q go from the right, and value 0 or out of range values do nothing.
The program always starts from Step 1, but Step 0 can be used for testing if zero.
An example of a program:
 202002
 Step 1: Replace "2" 3 with "2022".
 Step 2: Remove "0" 4.
 Step 3: Go to Step 1.
Here's how the string evolves:
 202002
 202002022
 20200222
 20200202222
 2020022222
 2020020222222
Here's a self-modifying program:
 0020
 Step 1: Replace "2" 1 with "2022".
 Step 2: Replace "2" 2 with "2022"
 Step 3: Increment argument 1 in Step 1
 Step 4: Go to Step 1
Here's how the string evolves: 5
 0020
 0020220
 0020202220
 0020202202220
 0020202202202220
 0020202022202202220
 0020202202022202202220
 0020202202202022202202220
 0020202202022202022202202220
 0020202202202022202022202202220
 0020202202202202022202022202202220
 0020202202202022202022202022202202220
 0020202202202202022202022202022202202220
 0020202202202202202022202022202022202202220
 0020202202202202202202022202022202022202202220
 0020202202202202022202202022202022202022202202220
 0020202202202202202022202202022202022202022202202220
 0020202202202202202202022202202022202022202022202202220
 0020202202202202202202202022202202022202022202022202202220
 0020202202202202202022202202022202202022202022202022202202220
 0020202202202202202202022202202022202202022202022202022202202220
 0020202202202202202202202022202202022202202022202022202022202202220
It appears to be creating some sort of sequence on the right, starting with 3, 2, 3, 1, 3, 1, 3, 1, 2, 3, 1, 2, 3, 1 (if I didn't make any mistakes).
Addition program without using the string (if the sum is more than 24 it breaks):
 0
 Step 0: Go to Step 31.
 Step 1: Go to Step 27.
 Step 2: Go to Step 27.
 Step 3: Go to Step 27.
 Step 4: Go to Step 27.
 Step 5: Go to Step 27.
 Step 6: Go to Step 27.
 Step 7: Go to Step 27.
 Step 8: Go to Step 27.
 Step 9: Go to Step 27.
 Step 10: Go to Step 27.
 Step 11: Go to Step 27.
 Step 12: Go to Step 27.
 Step 13: Go to Step 27.
 Step 14: Go to Step 27.
 Step 15: Go to Step 27.
 Step 16: Go to Step 27.
 Step 17: Go to Step 27.
 Step 18: Go to Step 27.
 Step 19: Go to Step 27.
 Step 20: Go to Step 27.
 Step 21: Go to Step 27.
 Step 22: Go to Step 27.
 Step 23: Go to Step 27.
 Step 24: Go to Step 27.
 Step 25: Replace argument 1 in Step 29 with user input.
 Step 26: Replace argument 1 in Step 30 with user input.
 Step 27: Decrement argument 1 in Step 29.
 Step 28: Increment argument 1 in Step 30.
 Step 29: Go to Step 0.
 Step 30: Go to Step 0.
 Step 31: Output argument 1 of Step 30 as a number.
Category:Languages
Category:Self-modifying
Category:String-rewriting paradigm
Category:Unimplemented
Category:Unknown computational class
Category:Usability unknown