aboutsummaryrefslogtreecommitdiff
path: root/scripts/genprelude.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/genprelude.py')
-rw-r--r--scripts/genprelude.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/scripts/genprelude.py b/scripts/genprelude.py
new file mode 100644
index 0000000..555485d
--- /dev/null
+++ b/scripts/genprelude.py
@@ -0,0 +1,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 *prelude = "{escaped}";
+
+""")