//===-- cxx_proto.proto - Protobuf description of C++ ---------------------===//
//
//                     The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
///
/// \file
/// This file describes a subset of C++ as a protobuf.  It is used to
///  more easily find interesting inputs for fuzzing Clang.
///
//===----------------------------------------------------------------------===//

syntax = "proto2";

message VarRef {
  required int32 varnum = 1;
}

message Lvalue {
  required VarRef varref = 1;
}

message Const {
  required int32 val = 1;
}

message BinaryOp {
  enum Op {
    PLUS = 0;
    MINUS = 1;
    MUL = 2;
    DIV = 3;
    MOD = 4;
    XOR = 5;
    AND = 6;
    OR = 7;
    EQ = 8;
    NE = 9;
    LE = 10;
    GE = 11;
    LT = 12;
    GT = 13;
  };
  required Op op = 1;
  required Rvalue left = 2;
  required Rvalue right = 3;
}

message Rvalue {
  oneof rvalue_oneof {
    VarRef varref = 1;
    Const cons = 2;
    BinaryOp binop = 3;
  }
}

message AssignmentStatement {
  required Lvalue lvalue = 1;
  required Rvalue rvalue = 2;
}


message IfElse {
  required Rvalue cond = 1;
  required StatementSeq if_body = 2;
  required StatementSeq else_body = 3;
}

message While {
  required Rvalue cond = 1;
  required StatementSeq body = 2;
}

message Statement {
  oneof stmt_oneof {
    AssignmentStatement assignment = 1;
    IfElse              ifelse     = 2;
    While               while_loop = 3;
  }
}

message StatementSeq {
  repeated Statement statements = 1;
}

message Function {
  required StatementSeq statements = 1;
}

package clang_fuzzer;
