ftp.nice.ch/pub/next/developer/languages/lisp/AKCL.1.599.s.tar.gz#/akcl-1-599/ustation/extract.c

This is extract.c in view mode; [Download] [Up]

#include <stdio.h>
#include <ctype.h>

char buffer[1024];

main()
{
	register c, i;

START:
	c = getchar();
START1:
	if (feof(stdin))
		goto EXIT;
	if (isalpha(c) || c == '_')
		goto IDENTIFIER;
	if (c == '\'')
		goto CHARACTER;
	if (c == '"')
		goto STRING;
	if (c == '/') {
		if ((c = getchar()) == '*')
			goto COMMENT;
		goto START1;
	}
	goto START;

IDENTIFIER:
	for (i = 0;  isalnum(c) || c == '_';  c = getchar(), i++)
		buffer[i] = c;
	buffer[i] = '\0';
	if (i < 7)
		goto START1;
	printf("%s\n", buffer);
	goto START1;

CHARACTER:
	while ((c = getchar()) != '\'')
		if (c == '\\')
			getchar();
	goto START;

STRING:
	while ((c = getchar()) != '"')
		if (c == '\\')
			getchar();
	goto START;

COMMENT:
	while (getchar() != '*' || getchar() != '/')
		;
	goto START;

EXIT:
	exit(0);
}

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.