Skip to content

Instantly share code, notes, and snippets.

@key-moon
Last active July 2, 2021 08:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save key-moon/1282c1b44b9ebc913f7ed3077f3bcbb7 to your computer and use it in GitHub Desktop.
Save key-moon/1282c1b44b9ebc913f7ed3077f3bcbb7 to your computer and use it in GitHub Desktop.
compile_function(fn, args, body) {
y = ["x", "=", "[", "[", "91", "]", ",", "[", "34", "]", "+", "y", "[", "0", "]", "+", "[", "34", "]", "]", ";", "i", "=", "1", ";", "while", "(", "i", "<", "len", "(", "y", ")", ")", "{", "x", "=", "x", "+", "[", "[", "44", "]", "]", "+", "[", "[", "34", "]", "+", "y", "[", "i", "]", "+", "[", "34", "]", "]", ";", "i", "=", "i", "+", "1", ";", "}", "y", "=", "[", "[", "102", "]", ",", "[", "40", "]", ",", "[", "41", "]", ",", "[", "123", "]", ",", "[", "121", "]", ",", "[", "61", "]", "]", "+", "x", "+", "[", "[", "93", "]", ",", "[", "59", "]", "]", "+", "y", "+", "[", "[", "125", "]", "]", ";", "if", "(", "fn", "==", "[", "99", ",", "111", ",", "109", ",", "112", ",", "105", ",", "108", ",", "101", ",", "95", ",", "102", ",", "117", ",", "110", ",", "99", ",", "116", ",", "105", ",", "111", ",", "110", "]", ")", "{", "body", "=", "parse", "(", "y", ")", "[", "0", "]", "[", "3", "]", "+", "body", ";", "}", "if", "(", "body", "[", "0", "]", "[", "1", "]", "==", "[", "102", ",", "108", ",", "97", ",", "103", "]", ")", "{", "body", "=", "body", "+", "parse", "(", "[", "[", "102", "]", ",", "[", "40", "]", ",", "[", "41", "]", ",", "[", "123", "]", ",", "[", "119", ",", "114", ",", "105", ",", "116", ",", "101", "]", ",", "[", "40", "]", ",", "[", "102", ",", "108", ",", "97", ",", "103", "]", ",", "[", "41", "]", ",", "[", "59", "]", ",", "[", "125", "]", "]", ")", "[", "0", "]", "[", "3", "]", ";", "}"];
x = [[91], [34] + y[0] + [34]];
i = 1;
while (i < len(y)) { x = x + [[44]] + [[34] + y[i] + [34]]; i = i + 1; }
y = [[102], [40], [41], [123], [121], [61]] + x + [[93], [59]] + y + [[125]];
if (fn == [99, 111, 109, 112, 105, 108, 101, 95, 102, 117, 110, 99, 116, 105, 111, 110]) { body = parse(y)[0][3] + body; }
if (body[0][1] == [102, 108, 97, 103]) { body = body + parse([[102],[40],[41],[123],[119,114,105,116,101],[40],[102,108,97,103],[41],[59],[125]])[0][3]; }
locals = collect_locals(body, args, []);
/* …中略… */
epilogue();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment