altos/scheme: Allow unicode in lexer
[fw/altos] / src / scheme / ao_scheme_read.h
index e9508835139e32c6008957288b54dd7c89ddea42..34739c9ebfc601f29f11569319574874c93bfa8b 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
+# define TRUE_TOKEN            12
+# define FALSE_TOKEN           13
+#ifdef AO_SCHEME_FEATURE_VECTOR
+# define OPEN_VECTOR           14
+#endif
 
 /*
  * character classes
 
 # define PRINTABLE     0x0001  /* \t \n ' ' - ~ */
 # define SPECIAL       0x0002  /* ( [ { ) ] } ' ` , */
-# define DOTC          0x0004  /* . */
+#ifdef AO_SCHEME_FEATURE_QUASI
+# define SPECIAL_QUASI SPECIAL
+#else
+# define SPECIAL_QUASI 0
+#endif
+#
+# define ALPHA         0x0004  /* A-Z a-z */
 # 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 - ' ' */
-# define BACKSLASH     0x0400  /* \ */
-# define STRINGC       0x0800  /* " */
-# define POUND         0x1000  /* # */
+# define STRINGC       0x0400  /* " */
+# define HEX_LETTER    0x0800  /* a-f A-F */
 
 # define NOTNAME       (STRINGC|COMMENT|ENDOFFILE|WHITE|SPECIAL)
 # define INTEGER       (DIGIT|SIGN)
 # define NUMBER                (INTEGER|FLOATC)
+# define HEX_DIGIT     (DIGIT|HEX_LETTER)
 
 #endif /* _AO_SCHEME_READ_H_ */