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
39 #ifdef AO_SCHEME_FEATURE_VECTOR
40 # define OPEN_VECTOR 13
47 # define PRINTABLE 0x0001 /* \t \n ' ' - ~ */
48 # define SPECIAL 0x0002 /* ( [ { ) ] } ' ` , */
49 #ifdef AO_SCHEME_FEATURE_QUASI
50 # define SPECIAL_QUASI SPECIAL
52 # define SPECIAL_QUASI 0
54 # define DOTC 0x0004 /* . */
55 # define WHITE 0x0008 /* ' ' \t \n */
56 # define DIGIT 0x0010 /* [0-9] */
57 # define SIGN 0x0020 /* +- */
58 #ifdef AO_SCHEME_FEATURE_FLOAT
59 # define FLOATC 0x0040 /* . e E */
63 # define ENDOFFILE 0x0080 /* end of file */
64 # define COMMENT 0x0100 /* ; */
65 # define IGNORE 0x0200 /* \0 - ' ' */
66 # define BACKSLASH 0x0400 /* \ */
67 # define STRINGC 0x0800 /* " */
68 # define POUND 0x1000 /* # */
70 # define NOTNAME (STRINGC|COMMENT|ENDOFFILE|WHITE|SPECIAL)
71 # define INTEGER (DIGIT|SIGN)
72 # define NUMBER (INTEGER|FLOATC)
74 #endif /* _AO_SCHEME_READ_H_ */