a84718215d | ||
---|---|---|
tests | ||
.gitignore | ||
README.md | ||
composer.json | ||
metagen.inc.php | ||
parser.inc.php |
README.md
Metagen package is used to describe structures, interfaces, functions, RPC calls using DSL. This can be useful for codegen, bindings, etc.
Here is an example of some imaginary DSL:
#include enum.meta
func GetPlayer(
id : uint32
) : DataPlayer
func Apply(
fn : func(float, DataPlayer) : uint32
)
struct DataPlayer
@POD @table:player @pkey:id
id : uint32
version : string @strmax:16
gold : uint8 @default:0 #bonus
registered : bool @default:true
func Equals(
o : DataPlayer
v : uint32
) : bool,bool
end
struct ProtoBase
id : uint32
title : string @strmax:16 @default:"Hello"
end
struct ProtoBuilding extends ProtoBase
floors : int32
arr : uint32[] @default:[1,2,3]
end