diff options
author | David Greene <greened@obbligato.org> | 2009-05-14 22:38:31 +0000 |
---|---|---|
committer | David Greene <greened@obbligato.org> | 2009-05-14 22:38:31 +0000 |
commit | 5f9f9ba00b85eb19da2618f393e43a6a11b5d892 (patch) | |
tree | bd237c2d0cb6a5ec6c114294dfdb5bd049d1501a /test/TableGen | |
parent | beb31a51f67f651c5fa3c5094a78266d04a697a5 (diff) |
Graduate LLVM to the big leagues by embedding a LISP processor into TableGen.
Ok, not really, but do support some common LISP functions:
* car
* cdr
* null
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71805 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/TableGen')
-rw-r--r-- | test/TableGen/lisp.td | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/test/TableGen/lisp.td b/test/TableGen/lisp.td new file mode 100644 index 0000000000..3e392fda84 --- /dev/null +++ b/test/TableGen/lisp.td @@ -0,0 +1,21 @@ +// RUN: tblgen %s | grep {} + +class List<list<string> n> { + list<string> names = n; +} + +class CAR<string e> { + string element = e; +} + +class CDR<list<string> r, int n> { + list<string> rest = r; + int null = n; +} + +class NameList<list<string> Names> : + List<Names>, CAR<!car(Names)>, CDR<!cdr(Names), !null(!cdr(Names))>; + +def Three : NameList<["Tom", "Dick", "Harry"]>; + +def One : NameList<["Jeffrey Sinclair"]>; |