1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-20 19:50:24 +02:00

* snarf.h, filter-doc-snarfage.c: more changes to cope with

space-happy C preprocessors.
This commit is contained in:
Michael Livshin 2001-06-08 14:49:05 +00:00
parent 47bcd6465f
commit a88ff5b650
3 changed files with 21 additions and 7 deletions

View file

@ -1,5 +1,8 @@
2001-06-08 Michael Livshin <mlivshin@bigfoot.com> 2001-06-08 Michael Livshin <mlivshin@bigfoot.com>
* snarf.h, filter-doc-snarfage.c: more changes to cope with
space-happy C preprocessors.
* filter-doc-snarfage.c, guile-snarf.in: try to cope with spaces * filter-doc-snarfage.c, guile-snarf.in: try to cope with spaces
inside cookies. thanks to Matthias Köppe! inside cookies. thanks to Matthias Köppe!

View file

@ -23,6 +23,7 @@ typedef enum state_t
SKIP, SKIP,
SKIP_COOKIE, SKIP_COOKIE,
MULTILINE_BEGINNING_OF_LINE,
MULTILINE, MULTILINE,
MULTILINE_COOKIE, MULTILINE_COOKIE,
@ -68,11 +69,19 @@ process ()
fputs ("(doc-block (\n", stdout); fputs ("(doc-block (\n", stdout);
state = MULTILINE; state = MULTILINE;
break; break;
case ' ':
break;
default: default:
die ("bad snarf cookie"); die ("bad snarf cookie");
break; break;
} }
break; break;
case MULTILINE_BEGINNING_OF_LINE:
if (c != ' ') {
state = MULTILINE;
putc (c, stdout);
}
break;
case MULTILINE: case MULTILINE:
if (c == '^') { if (c == '^') {
if (want_cookie) { if (want_cookie) {
@ -92,13 +101,15 @@ process ()
case '(': case '(':
state = STRINGS; state = STRINGS;
break; break;
case ' ': case '%':
state = MULTILINE; state = MULTILINE_BEGINNING_OF_LINE;
break; break;
case '}': case '}':
fputs ("))\n", stdout); fputs ("))\n", stdout);
state = SKIP; state = SKIP;
break; break;
case ' ':
break;
default: default:
die ("bad snarf cookie in multiline context"); die ("bad snarf cookie in multiline context");
break; break;

View file

@ -86,11 +86,11 @@
# define SCM_SNARF_INIT(X) # define SCM_SNARF_INIT(X)
# define SCM_SNARF_DOCS(TYPE, FNAME, ARGLIST, REQ, OPT, VAR, DOCSTRING) \ # define SCM_SNARF_DOCS(TYPE, FNAME, ARGLIST, REQ, OPT, VAR, DOCSTRING) \
^^{ \ ^^{ \
^^ fname . FNAME \ ^^%fname . FNAME \
^^ type . TYPE \ ^^%type . TYPE \
^^ location __FILE__ . __LINE__ \ ^^%location __FILE__ . __LINE__ \
^^ arglist . ARGLIST \ ^^%arglist . ARGLIST \
^^ argsig REQ OPT VAR \ ^^%argsig REQ OPT VAR \
^^(DOCSTRING) \ ^^(DOCSTRING) \
^^} ^^}
# else # else