User:Jan jelo/BF interpreter in Thue

From Esolang
Jump to navigation Jump to search

This is a Brainfuck interpreter in Thue by User:Jan jelo

(input and output are unary numbers(each output wrapped by ( and )),the value of each cell is an unbounded natural number)

{0>}+::=+{0>}
{0>}-::=-{0>}
{0>}<::=<{0>}
{0>}>::=>{0>}
{0>}[::=[{0>}
{0>}]::=]{0>}
{0>}.::=.{0>}
{0>},::=,{0>}
{0>}p+::=p+{+|>}
{0>}p-::=p-{-|>}
{0>}p<::=p<{<|>}
{0>}p>::=p>{>|>}
{0>}p[::=p[{[|>}
{0>}p]::=p]{]|>}
{0>}p.::=p.{.|>}o(o
{0>}p,::=p,{,|>}

{+|>}+::=+{+|>}
{+|>}-::=-{+|>}
{+|>}<::=<{+|>}
{+|>}>::=>{+|>}
{+|>}[::=[{+|>}
{+|>}]::=]{+|>}
{+|>}.::=.{+|>}
{+|>},::=,{+|>}
{+|>}!::=!{+|>}
{+|>}|::=|{+|>}
{+|>}*::=*{+|>}
{+|>}q::={<1}q*

+{<1}::={<1}+
-{<1}::={<1}-
<{<1}::={<1}<
>{<1}::={<1}>
[{<1}::={<1}[
]{<1}::={<1}]
.{<1}::={<1}.
,{<1}::={<1},
!{<1}::={<1}!
|{<1}::={<1}|
*{<1}::={<1}*
p{<1}+::={0>}+p
p{<1}-::={0>}-p
p{<1}<::={0>}<p
p{<1}>::={0>}>p
p{<1}[::={0>}p[
p{<1}]::={0>}p]
p{<1}.::={0>}.p
p{<1},::={0>},p
*q{<1}::=q{<1}*
|q{<1}::=|{<1}q
!q{<1}::=!|q{<1}

{-|>}+::=+{-|>}
{-|>}-::=-{-|>}
{-|>}<::=<{-|>}
{-|>}>::=>{-|>}
{-|>}[::=[{-|>}
{-|>}]::=]{-|>}
{-|>}.::=.{-|>}
{-|>},::=,{-|>}
{-|>}!::=!{-|>}
{-|>}|::=|{-|>}
{-|>}*::=*{-|>}
{-|>}q*::={<1}q
{-|>}q|::={<1}q|
{-|>}q)::={-|>}q|)

{<|>}+::=+{<|>}
{<|>}-::=-{<|>}
{<|>}<::=<{<|>}
{<|>}>::=>{<|>}
{<|>}[::=[{<|>}
{<|>}]::=]{<|>}
{<|>}.::=.{<|>}
{<|>},::=,{<|>}
{<|>}!::=!{<|>}
{<|>}|::=|{<|>}
{<|>}*::=*{<|>}
*{<|>}q::={<|>}q*
|{<|>}q::=q{<1}|
!{<|>}q::=!|{<|>}q

{>|>}+::=+{>|>}
{>|>}-::=-{>|>}
{>|>}<::=<{>|>}
{>|>}>::=>{>|>}
{>|>}[::=[{>|>}
{>|>}]::=]{>|>}
{>|>}.::=.{>|>}
{>|>},::=,{>|>}
{>|>}!::=!{>|>}
{>|>}|::=|{>|>}
{>|>}*::=*{>|>}
{>|>}q*::=*{>|>}q
{>|>}q|::=|{<1}q
{>|>}q)::={>|>}q|)

{[|>}+::=+{[|>}
{[|>}-::=-{[|>}
{[|>}<::=<{[|>}
{[|>}>::=>{[|>}
{[|>}[::=[{[|>}
{[|>}]::=]{[|>}
{[|>}.::=.{[|>}
{[|>},::=,{[|>}
{[|>}!::=!{[|>}
{[|>}|::=|{[|>}
{[|>}*::=*{[|>}
*{[|>}q::={[|>}q*
{[|>}q*::={<|[1}q*
{[|>}q|::={<|[0}q|
{[|>}q)::={[|>}q|)

+{<|[1}::={<|[1}+
-{<|[1}::={<|[1}-
<{<|[1}::={<|[1}<
>{<|[1}::={<|[1}>
[{<|[1}::={<|[1}[
]{<|[1}::={<|[1}]
.{<|[1}::={<|[1}.
,{<|[1}::={<|[1},
!{<|[1}::={<|[1}!
|{<|[1}::={<|[1}|
*{<|[1}::={<|[1}*
p{<|[1}[::=[{0>}p

+{<|[0}::={<|[0}+
-{<|[0}::={<|[0}-
<{<|[0}::={<|[0}<
>{<|[0}::={<|[0}>
[{<|[0}::={<|[0}[
]{<|[0}::={<|[0}]
.{<|[0}::={<|[0}.
,{<|[0}::={<|[0},
!{<|[0}::={<|[0}!
|{<|[0}::={<|[0}|
*{<|[0}::={<|[0}*
p{<|[0}[::=[{<2}p

+{<2}::={<2}+
-{<2}::={<2}-
<{<2}::={<2}<
>{<2}::={<2}>
[{<2}::={<2}[
]{<2}::={<2}]
.{<2}::={<2}.
,{<2}::={<2},
|{<2}::=*|{3>}

{3>}+::=+{3>}
{3>}-::=-{3>}
{3>}<::=<{3>}
{3>}>::=>{3>}
{3>}[::=[{3>}
{3>}]::=]{3>}
{3>}.::=.{3>}
{3>},::=,{3>}
{3>}p+::=+{3>}p
{3>}p-::=-{3>}p
{3>}p<::=<{3>}p
{3>}p>::=>{3>}p
{3>}p[::=[{<2}p
{3>}p]::=]{<4}p
{3>}p.::=.{3>}p
{3>}p,::=,{3>}p

+{<4}::={<4}+
-{<4}::={<4}-
<{<4}::={<4}<
>{<4}::={<4}>
[{<4}::={<4}[
]{<4}::={<4}]
.{<4}::={<4}.
,{<4}::={<4},
**|{<4}::=*|{3>}
(*|{<4}::=(|{0>}

{]|>}+::=+{]|>}
{]|>}-::=-{]|>}
{]|>}<::=<{]|>}
{]|>}>::=>{]|>}
{]|>}[::=[{]|>}
{]|>}]::=]{]|>}
{]|>}.::=.{]|>}
{]|>},::=,{]|>}
{]|>}!::=!{]|>}
{]|>}|::=|{]|>}
{]|>}*::=*{]|>}
*{]|>}q::={]|>}q*
{]|>}q*::={<|]1}q*
{]|>}q|::={<|]0}q|
{]|>}q)::={]|>}q|)

+{<|]1}::={<|]1}+
-{<|]1}::={<|]1}-
<{<|]1}::={<|]1}<
>{<|]1}::={<|]1}>
[{<|]1}::={<|]1}[
]{<|]1}::={<|]1}]
.{<|]1}::={<|]1}.
,{<|]1}::={<|]1},
!{<|]1}::={<|]1}!
|{<|]1}::={<|]1}|
*{<|]1}::={<|]1}*
p{<|]1}]::={<5}p]

+{<|]0}::={<|]0}+
-{<|]0}::={<|]0}-
<{<|]0}::={<|]0}<
>{<|]0}::={<|]0}>
[{<|]0}::={<|]0}[
]{<|]0}::={<|]0}]
.{<|]0}::={<|]0}.
,{<|]0}::={<|]0},
!{<|]0}::={<|]0}!
|{<|]0}::={<|]0}|
*{<|]0}::={<|]0}*
p{<|]0}]::={0>}]p

+{<5}::={<5}+
-{<5}::={<5}-
<{<5}::={<5}<
>{<5}::={<5}>
[{<5}::={<5}[
]{<5}::={<5}]
.{<5}::={<5}.
,{<5}::={<5},
|{<5}::=*|{6>}

{6>}+::=+{6>}
{6>}-::=-{6>}
{6>}<::=<{6>}
{6>}>::=>{6>}
{6>}[::=[{6>}
{6>}]::=]{6>}
{6>}.::=.{6>}
{6>},::=,{6>}
+{6>}p::={6>}p+
-{6>}p::={6>}p-
<{6>}p::={6>}p<
>{6>}p::={6>}p>
[{6>}p::={<7}p[
]{6>}p::={<5}p]
.{6>}p::={6>}p.
,{6>}p::={6>}p,

+{<7}::={<7}+
-{<7}::={<7}-
<{<7}::={<7}<
>{<7}::={<7}>
[{<7}::={<7}[
]{<7}::={<7}]
.{<7}::={<7}.
,{<7}::={<7},
**|{<7}::=*|{6>}
(*|{<7}::=(|{0>}

o*o::=~*
o(o::=~(
o)o::=~)

{.|>}+::=+{.|>}
{.|>}-::=-{.|>}
{.|>}<::=<{.|>}
{.|>}>::=>{.|>}
{.|>}[::=[{.|>}
{.|>}]::=]{.|>}
{.|>}.::=.{.|>}
{.|>},::=,{.|>}
{.|>}!::=!{.|>}
{.|>}|::=|{.|>}
{.|>}*::=*{.|>}
{.|>}q*::=*{.|>}qo*o
{.|>}q|::=qo)o{<1}|
{.|>}q)::={.|>}q|)

i::=:::

{,|>}+::=+{,|>}
{,|>}-::=-{,|>}
{,|>}<::=<{,|>}
{,|>}>::=>{,|>}
{,|>}[::=[{,|>}
{,|>}]::=]{,|>}
{,|>}.::=.{,|>}
{,|>},::=,{,|>}
{,|>}!::=!{,|>}
{,|>}|::=|{,|>}
{,|>}*::=*{,|>}
{,|>}q*::={,|>}q
{,|>}q|::=qi{<1}|
{,|>}q)::={,|>}q|)

PROGRAM::=++++++++[-<+++++++++>]<.

::=

(|{0>}pPROGRAM!q)