altos/scheme: Support scheme subsetting via feature settings
[fw/altos] / src / scheme / ao_scheme_read.h
index e10a7d05bb516b8ad57abe3640bb0c763c20d3f6..1aa11a3a025b284e1e79b349fda34bdb2872cbca 100644 (file)
 # define OPEN                          2
 # define CLOSE                 3
 # define QUOTE                 4
+#ifdef AO_SCHEME_FEATURE_QUASI
 # define QUASIQUOTE            5
 # define UNQUOTE               6
 # define UNQUOTE_SPLICING      7
+#endif
 # define STRING                        8
 # define NUM                   9
+#ifdef AO_SCHEME_FEATURE_FLOAT
 # define FLOAT                 10
+#endif
 # define DOT                   11
 # define BOOL                  12
+#ifdef AO_SCHEME_FEATURE_VECTOR
 # define OPEN_VECTOR           13
+#endif
 
 /*
  * character classes
 
 # define PRINTABLE     0x0001  /* \t \n ' ' - ~ */
 # define SPECIAL       0x0002  /* ( [ { ) ] } ' ` , */
+#ifdef AO_SCHEME_FEATURE_QUASI
+# define SPECIAL_QUASI SPECIAL
+#else
+# define SPECIAL_QUASI 0
+#endif
 # define DOTC          0x0004  /* . */
 # define WHITE         0x0008  /* ' ' \t \n */
 # define DIGIT         0x0010  /* [0-9] */
 # define SIGN          0x0020  /* +- */
+#ifdef AO_SCHEME_FEATURE_FLOAT
 # define FLOATC                0x0040  /* . e E */
+#else
+# define FLOATC                0
+#endif
 # define ENDOFFILE     0x0080  /* end of file */
 # define COMMENT       0x0100  /* ; */
 # define IGNORE                0x0200  /* \0 - ' ' */