-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
91 lines (71 loc) · 3.28 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/water.css@2/out/water.css">
<script src="./lib/bf.js"></script>
<main>
<h1>C++++++++++++++++++++++++++++++</h1>
<h2>Input</h2>
<textarea id="input" style="height: 25em;">
</textarea>
<button onclick="run('convert')">C++...++ => Brainfuck</button>
<button onclick="run('reverse')">Brainfuck => C++...++</button>
<br>
<button onclick="run('run')">Run C++...++</button>
<h2>Output</h2>
<p id="output"></p>
</main>
<script>
const input = document.getElementById('input')
const output = document.getElementById('output')
const helloworld = ";auto(auto);auto(auto);auto(auto);auto(auto);auto(auto);auto(auto);auto(auto);auto(auto);auto(auto);auto{auto auto=auto;auto(auto);auto(auto);auto(auto);auto(auto);auto(auto);auto(auto);auto(auto);auto(auto);;auto auto;}auto auto=auto;auto;;auto(auto);auto(auto);auto(auto);auto(auto);auto(auto);auto(auto);auto(auto);auto{auto auto=auto;auto(auto);auto(auto);auto(auto);auto(auto);;auto auto;}auto auto=auto;auto(auto);auto;auto(auto);auto(auto);auto(auto);auto(auto);auto(auto);auto(auto);auto(auto);auto;auto;auto(auto);auto(auto);auto(auto);auto;auto{auto auto;};auto(auto);auto(auto);auto(auto);auto(auto);auto(auto);auto(auto);auto(auto);auto(auto);auto{auto auto=auto;auto(auto);auto(auto); auto(auto);auto(auto);;auto auto;}auto auto=auto;auto;;auto(auto);auto(auto);auto(auto);auto(auto);auto(auto);auto(auto);auto(auto);auto(auto);auto(auto);auto(auto);auto(auto);auto{auto auto=auto;auto(auto);auto(auto);auto(auto);auto(auto);auto(auto);;auto auto;}auto auto=auto;auto;;auto(auto);auto(auto);auto(auto);auto(auto);auto(auto);auto(auto);auto(auto);auto(auto);auto{auto auto=auto;auto(auto);auto(auto);auto(auto);;auto auto;}auto auto=auto;auto;auto(auto);auto(auto);auto(auto);auto;auto auto;auto auto;auto auto;auto auto;auto auto;auto auto;auto;auto auto;auto auto;auto auto;auto auto;auto auto;auto auto;auto auto;auto auto;auto;auto{auto auto;}; auto(auto);auto(auto);auto(auto);auto(auto);auto(auto);auto(auto);auto(auto);auto(auto);auto{auto auto=auto;auto(auto);auto(auto);auto(auto);auto(auto);;auto auto;}auto auto=auto;auto(auto);auto;auto{auto auto;}auto(auto);auto(auto);auto(auto);auto(auto);auto(auto);auto(auto);auto(auto);auto(auto);auto(auto);auto(auto);auto;"
input.value = helloworld
const map = [
{
input: 'auto{',
output: '[',
},
{
input: '}',
output: ']',
},
{
input: 'auto auto=auto;',
output: '<',
},
{
input: 'auto(auto);',
output: '+',
},
{
input: 'auto auto;',
output: '-',
},
{
input: 'auto;',
output: '.',
},
{
input: ';',
output: '>',
},
// there not input interface
{
input: 'getchar(auto);',
output: '-',
},
]
const replaceToken = (arg, reverse = false) => {
const output = reverse ? 'input' : 'output'
const input = reverse ? 'output' : 'input'
let result = arg
for (const m of map) {
result = result.replaceAll(m[input], m[output]);
}
return result
}
const run = (mode = 'run') => {
// update here ;)
let result = replaceToken(input.value, mode == 'reverse')
if (mode == 'run')
result = bf(result).run()
output.innerText = result
}
</script>