-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconshow.h
More file actions
97 lines (88 loc) · 1.64 KB
/
conshow.h
File metadata and controls
97 lines (88 loc) · 1.64 KB
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#pragma once
#include<ctime>
#include<cstring>
#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
class Output
{
class Myostream
{
ostream &out;
string prefix;
bool isNull;
bool st;
public:
Myostream(ostream& out,string prefix,bool isNull = false):isNull(isNull),out(out),prefix(prefix),st(true)
{
}
Myostream& operator<<(int something)
{
if (isNull)
{
return *this;
}
if (st)out << prefix;
out << something;
st = false;
return *this;
}
Myostream& operator<<(string something)
{
if (isNull)
{
return *this;
}
if (st)out << prefix;
out << something;
st = false;
return *this;
}
Myostream& operator<<(char* something)
{
if (isNull)
{
return *this;
}
if (st)out << prefix;
out << something;
st = false;
return *this;
}
Myostream& operator<<(ostream& (*endl)(ostream& strm))
{
if (isNull)
{
return *this;
}
endl(out);
st = true;
return *this;
}
};
public:
Myostream out,error,info,warning,code;
Output() :
out(cout, ""),
error(cerr, "[Error] "),
info(cerr, "[Info] ",true),
warning(cerr, "[Warning] "),
code(clog,"[Code] ")
{
}
void showVersion()
{
out << "Also Another Compiler 1.0.0" << endl;
out << "BY Zeyu Shen" << endl;
out << "Compile time:" __DATE__ " " __TIME__ << endl;
}
void showMenu()
{
out << "Usage: Compiler.exe Show this help information." << endl;
out << " Compiler.exe FILENAME Process the source file." << endl;
}
~Output()
{
}
};