summaryrefslogtreecommitdiff
path: root/src/importer.hpp
blob: c5a302db09a2a57942c374b2a72136b8db0c606d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#ifndef TEXO_INCLUDED_IMPORTER
#define TEXO_INCLUDED_IMPORTER

#include "producer.hpp"
#include <stdio.h>


/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * Texo Importer
 * Texo interface for parsers from input characters into inner representation,
 * described by Texo Producer.
 */
class TexoImporter {
public:
    TexoImporter(TexoProducer & producer);
    ~TexoImporter();


    bool End();
    bool Put(char c);
    bool Put(const ScriptVariable & s);
    bool Put(FILE * f);


protected:
    virtual bool TrueEnd();


    virtual bool TruePut(char c) = 0;
    virtual bool TruePut(const ScriptVariable & str);
    virtual bool TruePut(FILE * file);


    TexoProducer & producer;
    bool           ok;
};


#endif