1 // A TParser is a class for parsing input and formatting it (presumabyl for
2 // display on the screen).  All parsers are derived from the TParser class,
3 // in order to facilitate extending telnet to include other kinds of
4 // output.  Currently, only one parser is implemented, the ANSI parser.
5 // A TParser includes:
6 //   - A ParseBuffer function, which takes as parameters start and end
7 //     pointers.  It returns a pointer to the last character parsed plus 1.
8 //     The start pointer is the beginning of the buffer, and the end
9 //     pointer is one character after the end of the buffer.
10 //   - An Init() function, which will re-initialize the parser when
11 //     necessary.
12 
13 #pragma once
14 
15 #include "tconsole.h"
16 #include "keytrans.h"
17 #include "tscroll.h"
18 //#include "tnetwork.h"
19 #include "tcharmap.h"
20 
21 class TParser {
22 public:
23 	TParser(TConsole &RefConsole, KeyTranslator &RefKeyTrans,
24 		TScroller &RefScroller, TNetwork &RefNetwork, TCharmap &RefCharmap) :
25 	Console(RefConsole), KeyTrans(RefKeyTrans), Scroller (RefScroller),
26 	Network(RefNetwork), Charmap(RefCharmap) {}
27 	virtual ~TParser() {}
28 
29 /*	TParser& operator= (const TParser &p) {
30 		Console = p.Console;
31 		KeyTrans = p.KeyTrans;
32 		Scroller = p.Scroller;
33 		Network = p.Network;
34 		return *this;
35 	}*/
36 
37 	virtual char *ParseBuffer(char *pszBuffer, char *pszBufferEnd) = 0;
38 	virtual void Init() = 0;
39 
40 protected:
41 	TConsole &Console;
42 	KeyTranslator &KeyTrans;
43 	TScroller &Scroller;
44 	TNetwork &Network;
45 	TCharmap &Charmap;
46 };
47