/
trace.cpp
47 lines (38 loc) · 921 Bytes
/
trace.cpp
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
// Tim Mertogul
// tmertogu@ucsc.edu
// Michael Lowe
// mimlowe@ucsc.edu
// CMPS109
// Spring 2015
// ASG 3
// $Id: trace.cpp,v 1.3 2014-05-29 19:20:19-07 - - $
#include <climits>
#include <iostream>
#include <limits>
#include <vector>
using namespace std;
#include "trace.h"
using boolvec = vector<char>;
boolvec traceflags::flags (UCHAR_MAX + 1, false);
const boolvec trueflags (UCHAR_MAX + 1, true);
void traceflags::setflags (const string& optflags) {
for (char flag: optflags) {
if (flag == '@') {
flags = trueflags;
}else {
flags[flag] = true;
}
}
// Note that TRACE can trace setflags.
TRACE ('t', "optflags = " << optflags);
}
//
// getflag -
// Check to see if a certain flag is on.
//
bool traceflags::getflag (char flag) {
// Bug alert:
// Don't TRACE this function or the stack will blow up.
bool result = flags[flag];
return result;
}