# FixxBuxx

FixxBuxx is a joke language. It is used for writing FizzBuzz Programmes, but you can write other programmes too!

## Commands

• `Fi[int1]Bu[int2]`: Print from 1 to 100, one by one. However, multiples of [int1] are replaced with "Fizz", and multiples of [int2] are replaced with "Buzz". Multiples of lcm([int1],[int2]) (e.g., multiples of both [int1] and [int2]) are replaced with "FizzBuzz".
• `Fizz -> [string1]`: You print out [string1] instead of "Fizz".
• `Buzz -> [string2]`: You print out [string2] instead of "Buzz".
• `FizzBuzz -> [string3]`: You print out [string3] instead of "FizzBuzz".
• `range([int3], [int4])`: You print out [int3] to [int4] instead of 1 to 100.(If [int4] is inf, the programme never ends.)
• `when([int5])[string4]`: You print out [string4] when you should print out [int5].
• `if([int6]){[code]}`: When you output [int6], do [code].
• `in`: Input an integer.
• `)[annotation]`: The annotation is written behind a `)`.

## Examples

### Hello, World!

```range(1,1)            ) The range is from 1 to 1
when(1)Hello, World!  ) When you need to print 1, print "Hello, World!" instead.
Fi1Bu1                ) Multiples of 1(Only 1), print "FizzBuzz". But you need to print "Hello, World!" because of the "when" command.
```

### FizzBuzz

```Fi3Bu5                ) Multiples of 3 are replaced with "Fizz", and multiples of 5 are replaced with "Buzz". Multiples of lcm(3,5) = 15 are replaced with "FizzBuzz".
```

### Truth Machine

```range(in,in)          ) If input is 0, the range is from 0 to 0. If input is 1, the range is from 1 to 1
Fizz -> 1             ) Change "Fizz" into "1".
Buzz -> 1             ) Change "Buzz" into "1".
FizzBuzz -> 1         ) Change "FizzBuzz" into "1".
when(0)0              ) When you need to output 0, output 0.
if(0){range(0,0)}     ) If the first output is 0 (the input is 0), the range is 0 to 0.
if(1){range(1,inf)}   ) If the first output is 1 (the input is 1), the range is 1 to infinity.
Fi1Bu1                ) Multiples of lcm(1,1) = 1, print "FizzBuzz", but it's replaced by "1".
```