/Broma

Custom configuration language used for Geode bindings and offsets

Primary LanguageC++MIT LicenseMIT

Broma

Broma is a C++-like language and parser designed to generate "bindings" for C++ classes and functions in external native binaries. Here's some example bindings:

class BindedClass {
	void bindedFunction() = mac 0xd5db0, win 0x3c8d, ios 0xa83bc;

	int m_member1;
	int m_member2;
}

class OtherBindedClass : BindedClass {
	virtual void otherBindedFunction() = mac 0x7e3bc, win 0x5a1c, ios 0x8e412;

	// win and ios addresses have not been found yet, will not generate
	static int staticFunction(int a, bool c) = mac 0x74bd3;

	// Embed c++ code
	inline int getIndex(int index) {
		return m_myVector[index];
	} 

	// templates supported
	std::vector<int> m_myVector;
}

This language is primarily designed for use in the Geometry Dash modding framework Geode, and most of the language features are tailored for that usecase.