summaryrefslogtreecommitdiffstats
path: root/libidu/scanners.c
diff options
context:
space:
mode:
authorClaudio Fontana <sick_soul@users.sourceforge.net>2006-11-25 14:05:50 +0000
committerClaudio Fontana <sick_soul@users.sourceforge.net>2006-11-25 14:05:50 +0000
commit4f68cc0e9bb9f7e92272319e1ca278810bc86ec9 (patch)
treed4aee7ea311091e2cf9c91c8fb3c6d147113e582 /libidu/scanners.c
parent097283714e52b370eff9c68d5ced2ea254962f32 (diff)
downloadidutils-4f68cc0e9bb9f7e92272319e1ca278810bc86ec9.tar.gz
idutils-4f68cc0e9bb9f7e92272319e1ca278810bc86ec9.tar.bz2
idutils-4f68cc0e9bb9f7e92272319e1ca278810bc86ec9.zip
* provide rough support for lisp character constants
Diffstat (limited to 'libidu/scanners.c')
-rw-r--r--libidu/scanners.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/libidu/scanners.c b/libidu/scanners.c
index c9785c1..112fd43 100644
--- a/libidu/scanners.c
+++ b/libidu/scanners.c
@@ -1643,7 +1643,19 @@ get_token_lisp (FILE *in_FILE, void const *args, int *flags)
}
} while ( (c != EOF) && (c != '"'));
goto top;
-
+
+ case '?': /* character constant */
+ cconstant:
+ do {
+ c = getc(in_FILE);
+ if (c == '\\')
+ {
+ c = getc(in_FILE);
+ goto cconstant;
+ }
+ } while (c != EOF && is_IDENT(c));
+ goto top;
+
case '.':
case '+': case '-':
id = scanner_buffer;