aboutsummaryrefslogtreecommitdiff
path: root/scripts/genprelude.py
blob: 6e2e1107e9ff5507cfd1b181a8f38b397de5877d (plain)
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
def escape_c_string(s):
    escape_chars = {
        '\n': '\\n',
        '\t': '\\t',
        '\r': '\\r',
        '\"': '\\"',
        '\'': '\\\'',
        '\\': '\\\\',
        '\b': '\\b',
        '\a': '\\a',
        '\v': '\\v',
        '\f': '\\f',
    }
    result = []
    for c in s:
        if c in escape_chars:
            result.append(escape_chars[c])
        else:
            result.append(c)
    return ''.join(result)

import sys

content = sys.stdin.read()
escaped = escape_c_string(content)
print(f"""
#include "prelude.h"

const char *bamboo_lisp_prelude = "{escaped}";

""")