# Renumbering

Renumbering is an esoteric programming language created by User:DoggyDogWhirl. It was created around the idea of re-assigning values to integers.

## Overview

Instead of integer literals, Renumbering uses variables whose names are integers, and which are initialized to that integer's value. Negative integers are preceded with a _ (e.g. _1 is initialized to -1). The operations +-*/%^ are used on two variables, and re-assign the first variable to the result of the expression (compound assignment operators). = directly sets the first variable to the value of the second.

Operation Description
A = B Assignment: Sets A to the value of B.
A [+-*/%^] B Compound Assignment: Sets A to the result of the operation between the values of A and B.
I A Input: Sets A to the value inputted.
O A Output: Outputs the value of A. Floors decimals and raises an error if negative.
C A Character Output: Outputs the value of A as a character. Floors decimals and raises an error if negative.
G A Goto: Execution jumps to the command numbered the value of A (1-indexed).

Floors decimals. Does not jump if less than or equal to 0. Program ends if index is too high.

## Example programs

### 2

Outputs 2 as a number.

O2

Outputs the character "2".

C50

### Hello, world!

C72 C101 C108 C108 C111 C44 C32 C119 C111 C114 C108 C100 C33

### Truth-machine

I1 C1 3=1 3-48 3*2 G3

### Cat program

I_1 C_1 3=2 3*_1 4=1 4+_1 3/4 G3

### Fibonacci sequence

_1=2 2=1 1+0 0=2 O0 C10 G_1

O0 C10 0+1 G1

### Prime numbers

_1=1 _1+1
_2=1 _2+1
_3=_2 _3-_1 _3+1 _3*19 G_3
_4=_1 _4%_2
_5=_4 _4*6 _5*2 _5+1 _4/_5 _4+2 G_4
O_1 C10 G2