aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2022-07-21 18:18:08 +0200
committerHugo Hörnquist <hugo@lysator.liu.se>2022-07-21 18:18:08 +0200
commitfcecde0f699162f4043648da3c2eefa2cc341e10 (patch)
tree084a6a73d212cca3d2ffe97e786888b9ca6d7ddd
parentAdd pre-compiled "headers", ensuring everything compiles again. (diff)
downloadcalp-fcecde0f699162f4043648da3c2eefa2cc341e10.tar.gz
calp-fcecde0f699162f4043648da3c2eefa2cc341e10.tar.xz
Add sample cpp "binary".
-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)
+ ))