/src/mruby/oss-fuzz/proto_to_ruby.h
Line | Count | Source (jump to first uncovered line) |
1 | | #include <cstdint> |
2 | | #include <cstddef> |
3 | | #include <string> |
4 | | #include <ostream> |
5 | | #include <sstream> |
6 | | #include <stack> |
7 | | #include <ruby.pb.h> |
8 | | |
9 | | namespace ruby_fuzzer { |
10 | | class protoConverter |
11 | | { |
12 | | public: |
13 | 2.31k | protoConverter() { |
14 | 2.31k | m_numLiveVars = 1; |
15 | 2.31k | m_numVarsPerScope.push(m_numLiveVars); |
16 | 2.31k | } |
17 | 0 | protoConverter(protoConverter const& x) { |
18 | 0 | m_numLiveVars = x.m_numLiveVars; |
19 | 0 | m_numVarsPerScope = x.m_numVarsPerScope; |
20 | 0 | } |
21 | 2.31k | ~protoConverter() {} |
22 | | std::string FunctionToString(Function const& _input); |
23 | | |
24 | | private: |
25 | | void visit(ArrType const&); |
26 | | void visit(Array const&); |
27 | | void visit(AssignmentStatement const&); |
28 | | void visit(BinaryOp const&); |
29 | | void visit(BuiltinFuncs const&); |
30 | | void visit(Const const&); |
31 | | void visit(Function const&); |
32 | | void visit(HashType const&); |
33 | | void visit(IfElse const&); |
34 | | void visit(KVPair const&); |
35 | | void visit(MathConst const&); |
36 | | void visit(MathOps const&); |
37 | | void visit(MathType const&); |
38 | | void visit(ObjectSpace const&); |
39 | | void visit(Rvalue const&); |
40 | | void visit(Statement const&); |
41 | | void visit(StatementSeq const&); |
42 | | void visit(StringExtNoArg const&); |
43 | | void visit(Ternary const&); |
44 | | void visit(Time const&); |
45 | | void visit(VarRef const&); |
46 | | template <class T> |
47 | | void visit(google::protobuf::RepeatedPtrField<T> const& _repeated_field); |
48 | | |
49 | | std::string removeSpecial(const std::string &x); |
50 | | |
51 | | std::ostringstream m_output; |
52 | | std::stack<uint8_t> m_numVarsPerScope; |
53 | | int32_t m_numLiveVars; |
54 | | }; |
55 | | } |