token *s;
const token *s;
findkind (const char **mark, token * tokp){  int len;  token *s;  const char *str;  char *tmp;  str = *mark;  for (s = symbols; s->kind != TOK_EOF; s++)    {      len = strlen (s->str);      if (strncmp (str, s->str, len) == 0)	{	  if (!isalnum (str[len]) && str[len] != '_')	    {	      tokp->kind = s->kind;	      tokp->str = s->str;	      *mark = str + len;	      return;	    }	}    }  tokp->kind = TOK_IDENT;  for (len = 0; isalnum (str[len]) || str[len] == '_'; len++);  tmp = alloc (len + 1);  strncpy (tmp, str, len);  tmp[len] = 0;  tokp->str = tmp;  *mark = str + len;}