lsflib/src/tokenizer.c
author Markus Bröker <mbroeker@largo.dyndns.tv>
Thu, 16 Apr 2009 12:49:12 +0200
changeset 42 83b8151b966d
parent 29 7abf6146898e
child 77 49e0babccb23
permissions -rw-r--r--
Klassenhierarchie erneuert, Codebase erneuert * Object -> Drawable -> ... * Surface stellt eine SDL Schnittstelle bereit * namespace pmc wurde aufgegeben * DEBUG Option im Makefile Bekannte Fehler: * Jedes Drawable muss wissen und checken, ob es gezeichnet werden kann oder nicht * Diese *P[i] = *P[i] + location Konstrukte machen mich irgendwie nervös... -> operator* entfernt... committer: Markus Bröker <mbroeker@largo.homelinux.org>

/**
 * test/demos/lsflib/src/tokenizer.c
 * Copyright (C) 2008 Markus Broeker
 */

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <ctype.h>
#include <string.h>

#include <lsf.h>

Node *tokenizer (FILE * f, const char *delim)
{

    /*
     * the main routine of the tokenizer
     *
     */
    Node *aktuell, *begin;

    char line[LINE_LENGTH];
    char *token;

    int tokens;

    *line = tokens = 0;

    aktuell = begin = addnode (NULL, "NULL");

    while ((fgets (line, LINE_LENGTH, f)) != NULL) {
        token = strtok (line, delim);
        while (token) {
            aktuell = addnode (aktuell, token);
            token = strtok (NULL, delim);
        }
        *line = 0;
    }

    rewind (f);

    aktuell = begin->next;
    free (begin->data);
    free (begin);

    return aktuell;
}