diff options
author | Morgan Deters <mdeters@gmail.com> | 2010-03-25 05:03:55 +0000 |
---|---|---|
committer | Morgan Deters <mdeters@gmail.com> | 2010-03-25 05:03:55 +0000 |
commit | e3e0b625862ba23ba97eb72fcdd3811448ad855a (patch) | |
tree | 23f2131094b7bea7556af65b7191c21a36a6e1d3 /src/expr/mkkind | |
parent | 876993722316c92f6d24525e22c89c215ac90521 (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-x | src/expr/mkkind | 28 |
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" |