bragi
This part of the Handbook if Work-In-Progress.
bragi is the future interface definition language for use in Managarm.
The code for bragi can be found at https://github.com/managarm/bragi.
Requirements
bragi requires python3 and lark-parser.
Sample code
enum enum1 {
	foo = 1,
	bar,
	baz
}
message msg1 1 {
head(256):
	byte[64] bab;
	byte[64] bib;
tail:
	optional tag(13) byte[3] bub = [1,2,3];
	optional byte[] beb = [7];
	string bob = "test";
}
message msg2 2 {
head(128):
	optional byte[64] bab;
	int32 bib = 2345;
tail:
	byte[4] bub = [1,2,3];
	byte beb = 7;
	byte bhb = 7;
	string bob = "test";
}
message msg3 3 {head(13): byte foo = 3;}
message msg4 4 {
head(64):
	uint64 foo;
	byte[16] arr;
tail:
	int32 baz;
	uint32[] bif;
}
Compile the sample code
To compile the sample.idl sample code run:
python setup.py install
bragi