aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xcpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/cpp b/cpp
new file mode 100755
index 00000000..127a4920
--- /dev/null
+++ b/cpp
@@ -0,0 +1,22 @@
+#!/usr/bin/env sh
+# -*- mode: scheme -*-
+here=$(dirname $(realpath $0))
+. $here/env
+
+exec $GUILE -e main -s "$0" "$@"
+!#
+
+(use-modules ((c preprocessor2) :select (preprocess-string make-default-environment))
+ ((hnh util io) :select (read-file))
+ ((c cpp-environment) :select (pprint-environment))
+ ((c unlex) :select (unlex))
+ (srfi srfi-71)
+ (srfi srfi-88))
+
+(define (main args)
+ (let ((env tokens (preprocess-string (read-file (cadr args)) (make-default-environment))))
+ (pprint-environment env)
+ (newline)
+ (display (unlex tokens))
+ (newline)
+ ))