summaryrefslogtreecommitdiffstats
path: root/parser.h
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2011-11-15 14:29:34 -0800
committerKaz Kylheku <kaz@kylheku.com>2011-11-15 14:29:34 -0800
commitb6551fda77163f74983688409aaf0c13c8186bec (patch)
tree690b7abd40236f6ef5e168e84a0a4c6eeeb2d2c2 /parser.h
parent9ae8fe9b48cd8e56816225e467f8882c8313d876 (diff)
downloadtxr-b6551fda77163f74983688409aaf0c13c8186bec.tar.gz
txr-b6551fda77163f74983688409aaf0c13c8186bec.tar.bz2
txr-b6551fda77163f74983688409aaf0c13c8186bec.zip
Changing read syntax for character literals, because we are going to
need the single quote in the Lisp way for suppressing evaluation, eventually. I'm going with a Scheme-compatible syntax for character literals. It has a richer repertoire of standard character names than Common Lisp, and has a x convention for coding characters in hex. * lib.c (obj_print): Print characters in a Scheme-like way. * parser.h (end_of_char): New function declared. * parser.l (grammar): Implement rules for #\ syntax, with involving new HASH_BACKSLASH token. (end_of_regex): Enhancement: added check that end_of_regex is called in correct state, like the one in end_of_char. (end_of_char): New function. * parser.y (repeat_rep_helper, o_elems_transform, define_transform, lit_char_helper): Functions changed to static. (rl): Function moved down, past the grammar section. (HASH_BACKSLASH): New terminal symbol. (chrlit): Grammar redesigned. (char_from_name): New function. * txr.1: Character syntax documented.
Diffstat (limited to 'parser.h')
-rw-r--r--parser.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/parser.h b/parser.h
index cca988da..754282d5 100644
--- a/parser.h
+++ b/parser.h
@@ -37,6 +37,7 @@ void yyerror(const char *s);
void yyerrorf(val s, ...);
void yybadtoken(int tok, val context);
void end_of_regex(void);
+void end_of_char(void);
int yylex(void);
void parse_init(void);
val source_loc(val form);