2 * Copyright © 2016 Keith Packard <keithp@keithp.com>
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 2 of the License, or
7 * (at your option) any later version.
9 * This program is distributed in the hope that it will be useful, but
10 * WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * General Public License for more details.
15 #ifndef _AO_SCHEME_READ_H_
16 #define _AO_SCHEME_READ_H_
27 #ifdef AO_SCHEME_FEATURE_QUASI
30 # define UNQUOTE_SPLICING 7
34 #ifdef AO_SCHEME_FEATURE_FLOAT
38 # define TRUE_TOKEN 12
39 # define FALSE_TOKEN 13
40 #ifdef AO_SCHEME_FEATURE_VECTOR
41 # define OPEN_VECTOR 14
48 # define PRINTABLE 0x0001 /* \t \n ' ' - ~ */
49 # define SPECIAL 0x0002 /* ( [ { ) ] } ' ` , */
50 #ifdef AO_SCHEME_FEATURE_QUASI
51 # define SPECIAL_QUASI SPECIAL
53 # define SPECIAL_QUASI 0
56 # define ALPHA 0x0004 /* A-Z a-z */
57 # define WHITE 0x0008 /* ' ' \t \n */
58 # define DIGIT 0x0010 /* [0-9] */
59 # define SIGN 0x0020 /* +- */
60 #ifdef AO_SCHEME_FEATURE_FLOAT
61 # define FLOATC 0x0040 /* . e E */
65 # define ENDOFFILE 0x0080 /* end of file */
66 # define COMMENT 0x0100 /* ; */
67 # define IGNORE 0x0200 /* \0 - ' ' */
68 # define STRINGC 0x0400 /* " */
69 # define HEX_LETTER 0x0800 /* a-f A-F */
71 # define NOTNAME (STRINGC|COMMENT|ENDOFFILE|WHITE|SPECIAL)
72 # define INTEGER (DIGIT|SIGN)
73 # define NUMBER (INTEGER|FLOATC)
74 # define HEX_DIGIT (DIGIT|HEX_LETTER)
76 #endif /* _AO_SCHEME_READ_H_ */