view parser.h @ 2:ff5e493bc9cb default tip

2003-01-29
author Radomir Dopieralski <sheep-devel@sheep.art.pl>
date Sat, 13 Oct 2012 21:14:50 +0200
parents 1361f218a6e5
children
line wrap: on
line source

/* Struktura parsera. */

#ifndef PARSER_H
#define PARSER_H

#include <glib.h>
#include <stdio.h>
#include "node.h"
#include "symbols.h"

struct Parser {
    GString        *filename;                              /* Nazwa pliku zrodlowego. */
    FILE           *source;                                /* Plik źródłowy. */
    GHashTable     *keywords;                              /* Tablica slow kluczowych. */
    Namespace      *global;                                /* Globalna przestrzen nazw. */
    int             levelup;                               /* Czy ma sprawdzac inne tablice symboli niz aktualna */
    GList          *namespaces;                            /* Stos przestrzeni nazw. */
    int             line;                                  /* Aktualna linia. */
    SymbolNode     *root;                                  /* Pierwszy węzeł drzewa parsowania. */
    GString       **codecomment;                           /* miejsce, gdzie ma byc wpisany kolejny komentarz do kodu. */
    GString        *blockcomment;                          /* ostatni komentarz blokowy. */
    GList          *scopes;                                /* Stos zasięgów -- zawiera symbole w których zasięgu aktualnie                                                                      * szukane są symbole. */
    const char *    last_token;                            /* Tekst ostatnio wczytanego tokena. */
};
typedef struct Parser Parser;

/* Tworzy nowy parser. */
Parser         *newParser(const char *filename);

/* Niszczy parser. */
void            destroyParser(Parser * parser);
#endif