altos/telegps-v2.0: git ignore make results
[fw/altos] / src / lisp / ao_lisp_read.h
1 /*
2  * Copyright © 2016 Keith Packard <keithp@keithp.com>
3  *
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.
8  *
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.
13  */
14
15 #ifndef _AO_LISP_READ_H_
16 #define _AO_LISP_READ_H_
17
18 # define END    0
19 # define NAME   1
20 # define OPEN   2
21 # define CLOSE  3
22 # define QUOTE  4
23 # define STRING 5
24 # define NUM    6
25
26 /*
27  * character classes
28  */
29
30 # define PRINTABLE      0x00000001      /* \t \n ' ' - '~' */
31 # define QUOTED         0x00000002      /* \ anything */
32 # define BRA            0x00000004      /* ( [ { */
33 # define KET            0x00000008      /* ) ] } */
34 # define WHITE          0x00000010      /* ' ' \t \n */
35 # define DIGIT          0x00000020      /* [0-9] */
36 # define SIGN           0x00000040      /* +- */
37 # define ENDOFFILE      0x00000080      /* end of file */
38 # define COMMENT        0x00000100      /* ; # */
39 # define IGNORE         0x00000200      /* \0 - ' ' */
40 # define QUOTEC         0x00000400      /* ' */
41 # define BACKSLASH      0x00000800      /* \ */
42 # define VBAR           0x00001000      /* | */
43 # define TWIDDLE        0x00002000      /* ~ */
44 # define STRINGC        0x00004000      /* " */
45
46 # define NOTNAME        (STRINGC|TWIDDLE|VBAR|QUOTEC|COMMENT|ENDOFFILE|WHITE|KET|BRA)
47 # define NUMBER         (DIGIT|SIGN)
48
49 #endif /* _AO_LISP_READ_H_ */