ff4ff35918
Red Bear OS is a full fork. All sources must be available from git clone with zero network access. Removed gitignore rules that excluded fetched source trees under recipes/*/source/, local/recipes/kde/*/source/, local/recipes/qt/*/source/, and vendor source trees. Build artifacts (target/, build/, source.tar, *.o, *.so) remain excluded. 127291 files added — kernel, relibc, base, bootloader, pkgar, all KDE/Qt frameworks, mesa, wayland, DRM drivers, and every other recipe source.
202 lines
3.3 KiB
Protocol Buffer
202 lines
3.3 KiB
Protocol Buffer
syntax = "proto2";
|
|
|
|
message VarRef {
|
|
required int32 varnum = 1;
|
|
}
|
|
|
|
message ArrType {
|
|
repeated Const elements = 1;
|
|
}
|
|
|
|
message KVPair {
|
|
required string key = 1;
|
|
required string val = 2;
|
|
}
|
|
|
|
message HashType {
|
|
repeated KVPair keyval = 1;
|
|
}
|
|
|
|
message StringExtNoArg {
|
|
enum StrExtOp {
|
|
DUMP = 0;
|
|
STRIP = 1;
|
|
LSTRIP = 2;
|
|
RSTRIP = 3;
|
|
STRIPE = 4;
|
|
LSTRIPE = 5;
|
|
RSTRIPE = 6;
|
|
SWAPCASE = 7;
|
|
SWAPCASEE = 8;
|
|
SQUEEZE = 9;
|
|
}
|
|
required StrExtOp str_op = 1;
|
|
required string str_arg = 2;
|
|
}
|
|
|
|
message MathConst {
|
|
enum MathConstLit {
|
|
PI = 0;
|
|
E = 1;
|
|
}
|
|
required MathConstLit math_const = 1;
|
|
}
|
|
|
|
message Const {
|
|
oneof const_oneof {
|
|
uint32 int_lit = 1;
|
|
bool bool_val = 4;
|
|
}
|
|
}
|
|
|
|
message BinaryOp {
|
|
enum Op {
|
|
ADD = 0;
|
|
SUB = 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;
|
|
RS = 14;
|
|
};
|
|
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 Rvalue rvalue = 2;
|
|
}
|
|
|
|
|
|
message IfElse {
|
|
required Rvalue cond = 1;
|
|
required StatementSeq if_body = 2;
|
|
required StatementSeq else_body = 3;
|
|
}
|
|
|
|
//TODO: Add Switch statement
|
|
//message Switch {
|
|
// required Rvalue switch_var = 1;
|
|
// repeated Rvalue cond = 2;
|
|
//}
|
|
|
|
message Ternary {
|
|
required Rvalue tern_cond = 1;
|
|
required Rvalue t_branch = 2;
|
|
required Rvalue f_branch = 3;
|
|
}
|
|
|
|
message ObjectSpace {
|
|
enum OS_methods {
|
|
COUNT = 1;
|
|
}
|
|
required OS_methods os_func = 1;
|
|
required HashType os_arg = 2;
|
|
}
|
|
|
|
message Time {
|
|
enum T_methods {
|
|
AT = 1;
|
|
GM = 2;
|
|
}
|
|
required T_methods t_func = 1;
|
|
required uint32 t_arg = 2;
|
|
}
|
|
|
|
message Array {
|
|
enum Arr_methods {
|
|
FLATTEN = 1;
|
|
COMPACT = 2;
|
|
FETCH = 3;
|
|
FILL = 4;
|
|
ROTATE = 5;
|
|
ROTATE_E = 6;
|
|
DELETEIF = 7;
|
|
INSERT = 8;
|
|
BSEARCH = 9;
|
|
KEEPIF = 10;
|
|
SELECT = 11;
|
|
VALUES_AT = 12;
|
|
BLOCK = 13;
|
|
DIG = 14;
|
|
SLICE = 15;
|
|
PERM = 16;
|
|
COMB = 17;
|
|
ASSOC = 18;
|
|
RASSOC = 19;
|
|
}
|
|
required Arr_methods arr_func = 1;
|
|
required ArrType arr_arg = 2;
|
|
required Rvalue val_arg = 3;
|
|
}
|
|
|
|
message MathType {
|
|
oneof math_arg_oneof {
|
|
Rvalue math_rval = 2;
|
|
MathConst math_const = 3;
|
|
}
|
|
}
|
|
|
|
message MathOps {
|
|
enum Mops {
|
|
CBRT = 1;
|
|
COS = 2;
|
|
ERF = 3;
|
|
ERFC = 4;
|
|
LOG = 5;
|
|
LOG10 = 6;
|
|
LOG2 = 7;
|
|
SIN = 8;
|
|
SQRT = 9;
|
|
TAN = 10;
|
|
}
|
|
required Mops math_op = 1;
|
|
required MathType math_arg = 2;
|
|
}
|
|
|
|
message BuiltinFuncs {
|
|
oneof bifunc_oneof {
|
|
ObjectSpace os = 1;
|
|
Time time = 2;
|
|
Array arr = 3;
|
|
MathOps mops = 4;
|
|
}
|
|
}
|
|
|
|
message Statement {
|
|
oneof stmt_oneof {
|
|
AssignmentStatement assignment = 1;
|
|
IfElse ifelse = 2;
|
|
Ternary ternary_stmt = 3;
|
|
BuiltinFuncs builtins = 4;
|
|
StatementSeq blockstmt = 5;
|
|
}
|
|
}
|
|
|
|
message StatementSeq {
|
|
repeated Statement statements = 1;
|
|
}
|
|
|
|
message Function {
|
|
required StatementSeq statements = 1;
|
|
}
|
|
|
|
package ruby_fuzzer;
|