summaryrefslogtreecommitdiff
path: root/src/expr/mkkind
diff options
context:
space:
mode:
authorMorgan Deters <mdeters@gmail.com>2010-03-25 05:03:55 +0000
committerMorgan Deters <mdeters@gmail.com>2010-03-25 05:03:55 +0000
commite3e0b625862ba23ba97eb72fcdd3811448ad855a (patch)
tree23f2131094b7bea7556af65b7191c21a36a6e1d3 /src/expr/mkkind
parent876993722316c92f6d24525e22c89c215ac90521 (diff)
new domain-specific language for kinds files: permits characterization of different "kinds of kinds" (special, operator, parameterized, and constant), and permits doxygen comments on them
Diffstat (limited to 'src/expr/mkkind')
-rwxr-xr-xsrc/expr/mkkind28
1 files changed, 23 insertions, 5 deletions
diff --git a/src/expr/mkkind b/src/expr/mkkind
index bc10f1e2c..cffdc0caa 100755
--- a/src/expr/mkkind
+++ b/src/expr/mkkind
@@ -34,6 +34,28 @@ middle=$1; shift
epilogue=$1; shift
cases=
+
+function special {
+ r=$1
+ comment=$2
+
+ echo " $r, /*! $comment */"
+ cases="$cases case $r: out << \"$r\"; break;
+"
+}
+
+function operator {
+ special "$1" "$2"
+}
+
+function parameterized {
+ special "$1" "$2"
+}
+
+function constant {
+ special "$1" "$3"
+}
+
cat "$prologue"
while [ $# -gt 0 ]; do
b=$(basename $(dirname "$1"))
@@ -42,11 +64,7 @@ while [ $# -gt 0 ]; do
cases="$cases
/* from $b */
"
- for r in `cat "$1"`; do
- echo " $r,"
- cases="$cases case $r: out << \"$r\"; break;
-"
- done
+ source "$1"
shift
done
cat "$middle"
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback