Coverage Report

Created: 2025-07-09 06:44

/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
}