aboutsummaryrefslogtreecommitdiffstats
path: root/program.h
blob: 2c04f024715bec9dcac7e80893873c6261255551 (plain) (blame)
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
40
41
42
43
44
45
46
47
#ifndef INCLUDE_BLASSIC_PROGRAM_H
#define INCLUDE_BLASSIC_PROGRAM_H

// program.h
// Revision 31-jul-2004

#include "blassic.h"
#include "codeline.h"
#include "file.h"

class Program {
public:
	Program ();
	virtual ~Program ();
	virtual BlChar * programptr ()= 0;
	virtual BlLineNumber getlabel (const std::string & str)= 0;
	virtual CodeLine getfirstline ()= 0;
	virtual void getnextline (CodeLine & codeline)= 0;
	virtual void getline (BlLineNumber num, CodeLine & codeline)= 0;
	virtual void getline (ProgramPos pos, CodeLine & codeline)= 0;
	virtual void insert (const CodeLine & codeline)= 0;
	virtual void deletelines
		(BlLineNumber iniline, BlLineNumber endline)= 0;
	virtual void listline (const CodeLine & codeline,
		blassic::file::BlFile & out) const= 0;
	virtual void list (BlLineNumber iniline, BlLineNumber endline,
		blassic::file::BlFile & out) const= 0;
	virtual void save (const std::string & name) const= 0;
	virtual void load (const std::string & name)= 0;
	virtual void load (std::istream & is)= 0;
	virtual void merge (const std::string & name,
		BlLineNumber inidel= LineNoDelete,
		BlLineNumber enddel= LineNoDelete
		)= 0;
	virtual void renew ()= 0;
	virtual void renum (BlLineNumber blnNew, BlLineNumber blnOld,
		BlLineNumber blnInc, BlLineNumber blnStop)= 0;
private:
	Program (const Program &); // Prohibido
	Program & operator= (const Program &); // Prohibido
};

Program * newProgram ();

#endif

// End of program.h
Un proyecto texto-plano.xyz