From 6c7ed6b0e6086e32710a0d42e034bce6bdaad7b0 Mon Sep 17 00:00:00 2001 From: rsc Date: Tue, 29 Nov 2005 04:23:33 +0000 Subject: new backquote syntax --- src/cmd/acid/lex.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'src/cmd/acid') diff --git a/src/cmd/acid/lex.c b/src/cmd/acid/lex.c index ed7f459d..f265d6c9 100644 --- a/src/cmd/acid/lex.c +++ b/src/cmd/acid/lex.c @@ -341,6 +341,33 @@ eatnl(void) } } +int +bqsymbol(void) +{ + int c; + char *p; + Lsym *s; + + symbol[0] = 0; + p = symbol; + while((c = lexc()) != '`'){ + if(c == Eof) + error("eof in backquote"); + if(c == '\n') + error("newline in backquote"); + *p++ = c; + } + if(p >= symbol+sizeof symbol) + sysfatal("overflow in bqsymbol"); + *p = 0; + + s = look(symbol); + if(s == 0) + s = enter(symbol, Tid); + yylval.sym = s; + return s->lexval; +} + int yylex(void) { @@ -360,6 +387,9 @@ loop: } return Eof; + case '`': + return bqsymbol(); + case '"': eatstring(); return Tstring; -- cgit v1.2.3