P4C
The P4 Compiler
Loading...
Searching...
No Matches
escape.h
1
17
18
#ifndef BACKENDS_TOFINO_BF_ASM_ESCAPE_H_
19
#define BACKENDS_TOFINO_BF_ASM_ESCAPE_H_
20
21
#include <iomanip>
22
#include <iostream>
23
24
#include "lib/hex.h"
25
26
class
escape {
27
std::string str;
28
29
public
:
30
explicit
escape(
const
std::string &s) : str(s) {}
31
friend
std::ostream &operator<<(std::ostream &os, escape e);
32
};
33
34
inline
std::ostream &operator<<(std::ostream &os,
escape
e) {
35
for
(
char
ch : e.str) {
36
switch
(ch) {
37
case
'\n'
:
38
os <<
"\\n"
;
39
break
;
40
case
'\t'
:
41
os <<
"\\t"
;
42
break
;
43
case
'\\'
:
44
os <<
"\\\\"
;
45
break
;
46
default
:
47
if
(ch < 32 || ch >= 127)
48
os <<
"\\x"
<< hex(ch & 0xff, 2,
'0'
);
49
else
50
os << ch;
51
}
52
}
53
return
os;
54
}
55
56
#endif
/* BACKENDS_TOFINO_BF_ASM_ESCAPE_H_ */
escape
Definition
escape.h:26
backends
tofino
bf-asm
escape.h
Generated by
1.13.2