diff options
| author | Martial Simon <msimon_fr@hotmail.com> | 2025-09-15 01:07:58 +0200 |
|---|---|---|
| committer | Martial Simon <msimon_fr@hotmail.com> | 2025-09-15 01:07:58 +0200 |
| commit | 967be9e750221ab2ab783f95df79bb26d290a45e (patch) | |
| tree | 6802900a5e975f9f68b169f0f503f040056d6952 /tiger-compiler/src/parse/generate-prelude.sh | |
Diffstat (limited to 'tiger-compiler/src/parse/generate-prelude.sh')
| -rwxr-xr-x | tiger-compiler/src/parse/generate-prelude.sh | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/tiger-compiler/src/parse/generate-prelude.sh b/tiger-compiler/src/parse/generate-prelude.sh new file mode 100755 index 0000000..d81d28b --- /dev/null +++ b/tiger-compiler/src/parse/generate-prelude.sh @@ -0,0 +1,31 @@ +#!/bin/sh + +[ -z "$1" ] && echo "$0: Missing input file" && exit +[ -z "$2" ] && echo "$0: Missing output file" && exit + +input=$1 +output=$2 + +awk 'BEGIN { + print("#include \"parse/tiger-driver.hh\""); + print(""); + print("namespace parse"); + print("{"); + print(" const char* TigerDriver::prelude () const"); + print(" {"); + print(" return"); + printf("R\"("); + } + /^#(<<|>>)/ { + next; + } + { + print($0); + } + END { + print(")\";"); + print(" }"); + print("} // namespace parse"); + }' "$input" > "$output".tmp + +mv "$output".tmp "$output" |
