|
FlatBuffers
|
schema = include* ( namespace_decl | type_decl | enum_decl | root_decl | attribute_decl | object )*
include = include string_constant ;
namespace_decl = namespace ident ( . ident )* ;
attribute_decl = attribute string_constant ;
type_decl = ( table | struct ) ident metadata { field_decl+ }
enum_decl = ( enum | union ) ident [ : type ] metadata { commasep( enumval_decl ) }
root_decl = root_type ident ;
field_decl = type : ident [ = scalar ] metadata ;
type = bool | byte | ubyte | short | ushort | int | uint | float | long | ulong | double | string | [ type ] | ident
enumval_decl = ident [ = integer_constant ]
metadata = [ ( commasep( ident [ : scalar ] ) ) ]
scalar = integer_constant | float_constant | true | false
object = { commasep( ident : value ) }
value = scalar | object | string_constant | [ commasep( value ) ]
commasep(x) = [ x ( , x )* ]