Fixed Lobster implementation to work with latest language features

This commit is contained in:
aardappel
2019-05-22 11:48:10 -07:00
parent b04736f9bd
commit 30ac512a54
9 changed files with 309 additions and 312 deletions

View File

@@ -12,8 +12,8 @@
// See the License for the specific language governing permissions and
// limitations under the License.
include from "../lobster/"
include "monster_test_generated.lobster"
import from "../lobster/"
import monster_test_generated
def check_read_buffer(buf):
// CheckReadBuffer checks that the given buffer is evaluated correctly as the example Monster.
@@ -119,14 +119,14 @@ check_read_buffer(fb1)
write_file("monsterdata_lobster_wire.mon", fb1)
// Test converting the buffer to JSON and parsing the JSON back again.
schema := read_file("monster_test.fbs")
let schema = read_file("monster_test.fbs")
assert schema
includedirs := [ "include_test" ]
let includedirs = [ "include_test" ]
// Convert binary to JSON:
json, err1 := flatbuffers_binary_to_json(schema, fb1, includedirs)
let json, err1 = flatbuffers_binary_to_json(schema, fb1, includedirs)
assert not err1
// Parse JSON back to binary:
fb3, err2 := flatbuffers_json_to_binary(schema, json, includedirs)
let fb3, err2 = flatbuffers_json_to_binary(schema, json, includedirs)
assert not err2
// Check the resulting binary again (full roundtrip test):
check_read_buffer(fb3)

View File

@@ -1,87 +1,86 @@
// automatically generated by the FlatBuffers compiler, do not modify
include "flatbuffers.lobster"
import flatbuffers
namespace MyGame_Example
enum +
Color_Red = 1,
Color_Green = 2,
enum Color:
Color_Red = 1
Color_Green = 2
Color_Blue = 8
enum +
Any_NONE = 0,
Any_Monster = 1,
Any_TestSimpleTableWithEnum = 2,
enum Any:
Any_NONE = 0
Any_Monster = 1
Any_TestSimpleTableWithEnum = 2
Any_MyGame_Example2_Monster = 3
enum +
AnyUniqueAliases_NONE = 0,
AnyUniqueAliases_M = 1,
AnyUniqueAliases_T = 2,
enum AnyUniqueAliases:
AnyUniqueAliases_NONE = 0
AnyUniqueAliases_M = 1
AnyUniqueAliases_T = 2
AnyUniqueAliases_M2 = 3
enum +
AnyAmbiguousAliases_NONE = 0,
AnyAmbiguousAliases_M1 = 1,
AnyAmbiguousAliases_M2 = 2,
enum AnyAmbiguousAliases:
AnyAmbiguousAliases_NONE = 0
AnyAmbiguousAliases_M1 = 1
AnyAmbiguousAliases_M2 = 2
AnyAmbiguousAliases_M3 = 3
namespace MyGame
struct InParentNamespace
class InParentNamespace
namespace MyGame_Example2
struct Monster
class Monster
namespace MyGame_Example
struct Test
class Test
struct TestSimpleTableWithEnum
class TestSimpleTableWithEnum
struct Vec3
class Vec3
struct Ability
class Ability
struct Stat
class Stat
struct Referrable
class Referrable
struct Monster
class Monster
struct TypeAliases
class TypeAliases
namespace MyGame
struct InParentNamespace : flatbuffers_handle
class InParentNamespace : flatbuffers_handle
def GetRootAsInParentNamespace(buf:string): InParentNamespace { buf, buf.flatbuffers_indirect(0) }
def GetRootAsInParentNamespace(buf:string): return InParentNamespace { buf, buf.flatbuffers_indirect(0) }
def InParentNamespaceStart(b_:flatbuffers_builder):
b_.StartObject(0)
def InParentNamespaceEnd(b_:flatbuffers_builder):
b_.EndObject()
return b_.EndObject()
namespace MyGame_Example2
struct Monster : flatbuffers_handle
class Monster : flatbuffers_handle
def GetRootAsMonster(buf:string): Monster { buf, buf.flatbuffers_indirect(0) }
def GetRootAsMonster(buf:string): return Monster { buf, buf.flatbuffers_indirect(0) }
def MonsterStart(b_:flatbuffers_builder):
b_.StartObject(0)
def MonsterEnd(b_:flatbuffers_builder):
b_.EndObject()
return b_.EndObject()
namespace MyGame_Example
struct Test : flatbuffers_handle
class Test : flatbuffers_handle
def a():
buf_.read_int16_le(pos_ + 0)
return buf_.read_int16_le(pos_ + 0)
def b():
buf_.read_int8_le(pos_ + 2)
return buf_.read_int8_le(pos_ + 2)
def CreateTest(b_:flatbuffers_builder, a:int, b:int):
b_.Prep(2, 4)
@@ -90,32 +89,32 @@ def CreateTest(b_:flatbuffers_builder, a:int, b:int):
b_.PrependInt16(a)
return b_.Offset()
struct TestSimpleTableWithEnum : flatbuffers_handle
class TestSimpleTableWithEnum : flatbuffers_handle
def color():
buf_.flatbuffers_field_int8(pos_, 4, 2)
return buf_.flatbuffers_field_int8(pos_, 4, 2)
def GetRootAsTestSimpleTableWithEnum(buf:string): TestSimpleTableWithEnum { buf, buf.flatbuffers_indirect(0) }
def GetRootAsTestSimpleTableWithEnum(buf:string): return TestSimpleTableWithEnum { buf, buf.flatbuffers_indirect(0) }
def TestSimpleTableWithEnumStart(b_:flatbuffers_builder):
b_.StartObject(1)
def TestSimpleTableWithEnumAddColor(b_:flatbuffers_builder, color:int):
b_.PrependUint8Slot(0, color, 2)
def TestSimpleTableWithEnumEnd(b_:flatbuffers_builder):
b_.EndObject()
return b_.EndObject()
struct Vec3 : flatbuffers_handle
class Vec3 : flatbuffers_handle
def x():
buf_.read_float32_le(pos_ + 0)
return buf_.read_float32_le(pos_ + 0)
def y():
buf_.read_float32_le(pos_ + 4)
return buf_.read_float32_le(pos_ + 4)
def z():
buf_.read_float32_le(pos_ + 8)
return buf_.read_float32_le(pos_ + 8)
def test1():
buf_.read_float64_le(pos_ + 16)
return buf_.read_float64_le(pos_ + 16)
def test2():
buf_.read_int8_le(pos_ + 24)
return buf_.read_int8_le(pos_ + 24)
def test3():
MyGame_Example_Test{ buf_, pos_ + 26 }
return MyGame_Example_Test{ buf_, pos_ + 26 }
def CreateVec3(b_:flatbuffers_builder, x:float, y:float, z:float, test1:float, test2:int, test3_a:int, test3_b:int):
b_.Prep(8, 32)
@@ -133,11 +132,11 @@ def CreateVec3(b_:flatbuffers_builder, x:float, y:float, z:float, test1:float, t
b_.PrependFloat32(x)
return b_.Offset()
struct Ability : flatbuffers_handle
class Ability : flatbuffers_handle
def id():
buf_.read_int32_le(pos_ + 0)
return buf_.read_int32_le(pos_ + 0)
def distance():
buf_.read_int32_le(pos_ + 4)
return buf_.read_int32_le(pos_ + 4)
def CreateAbility(b_:flatbuffers_builder, id:int, distance:int):
b_.Prep(4, 8)
@@ -145,15 +144,15 @@ def CreateAbility(b_:flatbuffers_builder, id:int, distance:int):
b_.PrependUint32(id)
return b_.Offset()
struct Stat : flatbuffers_handle
class Stat : flatbuffers_handle
def id():
buf_.flatbuffers_field_string(pos_, 4)
return buf_.flatbuffers_field_string(pos_, 4)
def val():
buf_.flatbuffers_field_int64(pos_, 6, 0)
return buf_.flatbuffers_field_int64(pos_, 6, 0)
def count():
buf_.flatbuffers_field_int16(pos_, 8, 0)
return buf_.flatbuffers_field_int16(pos_, 8, 0)
def GetRootAsStat(buf:string): Stat { buf, buf.flatbuffers_indirect(0) }
def GetRootAsStat(buf:string): return Stat { buf, buf.flatbuffers_indirect(0) }
def StatStart(b_:flatbuffers_builder):
b_.StartObject(3)
@@ -164,173 +163,173 @@ def StatAddVal(b_:flatbuffers_builder, val:int):
def StatAddCount(b_:flatbuffers_builder, count:int):
b_.PrependUint16Slot(2, count, 0)
def StatEnd(b_:flatbuffers_builder):
b_.EndObject()
return b_.EndObject()
struct Referrable : flatbuffers_handle
class Referrable : flatbuffers_handle
def id():
buf_.flatbuffers_field_int64(pos_, 4, 0)
return buf_.flatbuffers_field_int64(pos_, 4, 0)
def GetRootAsReferrable(buf:string): Referrable { buf, buf.flatbuffers_indirect(0) }
def GetRootAsReferrable(buf:string): return Referrable { buf, buf.flatbuffers_indirect(0) }
def ReferrableStart(b_:flatbuffers_builder):
b_.StartObject(1)
def ReferrableAddId(b_:flatbuffers_builder, id:int):
b_.PrependUint64Slot(0, id, 0)
def ReferrableEnd(b_:flatbuffers_builder):
b_.EndObject()
return b_.EndObject()
/// an example documentation comment: monster object
struct Monster : flatbuffers_handle
class Monster : flatbuffers_handle
def pos():
o := buf_.flatbuffers_field_struct(pos_, 4)
if o: MyGame_Example_Vec3 { buf_, o } else: nil
let o = buf_.flatbuffers_field_struct(pos_, 4)
return if o: MyGame_Example_Vec3 { buf_, o } else: nil
def mana():
buf_.flatbuffers_field_int16(pos_, 6, 150)
return buf_.flatbuffers_field_int16(pos_, 6, 150)
def hp():
buf_.flatbuffers_field_int16(pos_, 8, 100)
return buf_.flatbuffers_field_int16(pos_, 8, 100)
def name():
buf_.flatbuffers_field_string(pos_, 10)
return buf_.flatbuffers_field_string(pos_, 10)
def inventory(i:int):
buf_.read_int8_le(buf_.flatbuffers_field_vector(pos_, 14) + i * 1)
return buf_.read_int8_le(buf_.flatbuffers_field_vector(pos_, 14) + i * 1)
def inventory_length():
buf_.flatbuffers_field_vector_len(pos_, 14)
return buf_.flatbuffers_field_vector_len(pos_, 14)
def color():
buf_.flatbuffers_field_int8(pos_, 16, 8)
return buf_.flatbuffers_field_int8(pos_, 16, 8)
def test_type():
buf_.flatbuffers_field_int8(pos_, 18, 0)
return buf_.flatbuffers_field_int8(pos_, 18, 0)
def test_as_Monster():
MyGame_Example_Monster { buf_, buf_.flatbuffers_field_table(pos_, 20) }
return MyGame_Example_Monster { buf_, buf_.flatbuffers_field_table(pos_, 20) }
def test_as_TestSimpleTableWithEnum():
MyGame_Example_TestSimpleTableWithEnum { buf_, buf_.flatbuffers_field_table(pos_, 20) }
return MyGame_Example_TestSimpleTableWithEnum { buf_, buf_.flatbuffers_field_table(pos_, 20) }
def test_as_MyGame_Example2_Monster():
MyGame_Example2_Monster { buf_, buf_.flatbuffers_field_table(pos_, 20) }
return MyGame_Example2_Monster { buf_, buf_.flatbuffers_field_table(pos_, 20) }
def test4(i:int):
MyGame_Example_Test { buf_, buf_.flatbuffers_field_vector(pos_, 22) + i * 4 }
return MyGame_Example_Test { buf_, buf_.flatbuffers_field_vector(pos_, 22) + i * 4 }
def test4_length():
buf_.flatbuffers_field_vector_len(pos_, 22)
return buf_.flatbuffers_field_vector_len(pos_, 22)
def testarrayofstring(i:int):
buf_.flatbuffers_string(buf_.flatbuffers_field_vector(pos_, 24) + i * 4)
return buf_.flatbuffers_string(buf_.flatbuffers_field_vector(pos_, 24) + i * 4)
def testarrayofstring_length():
buf_.flatbuffers_field_vector_len(pos_, 24)
return buf_.flatbuffers_field_vector_len(pos_, 24)
/// an example documentation comment: this will end up in the generated code
/// multiline too
def testarrayoftables(i:int):
MyGame_Example_Monster { buf_, buf_.flatbuffers_indirect(buf_.flatbuffers_field_vector(pos_, 26) + i * 4) }
return MyGame_Example_Monster { buf_, buf_.flatbuffers_indirect(buf_.flatbuffers_field_vector(pos_, 26) + i * 4) }
def testarrayoftables_length():
buf_.flatbuffers_field_vector_len(pos_, 26)
return buf_.flatbuffers_field_vector_len(pos_, 26)
def enemy():
o := buf_.flatbuffers_field_table(pos_, 28)
if o: MyGame_Example_Monster { buf_, o } else: nil
let o = buf_.flatbuffers_field_table(pos_, 28)
return if o: MyGame_Example_Monster { buf_, o } else: nil
def testnestedflatbuffer(i:int):
buf_.read_int8_le(buf_.flatbuffers_field_vector(pos_, 30) + i * 1)
return buf_.read_int8_le(buf_.flatbuffers_field_vector(pos_, 30) + i * 1)
def testnestedflatbuffer_length():
buf_.flatbuffers_field_vector_len(pos_, 30)
return buf_.flatbuffers_field_vector_len(pos_, 30)
def testempty():
o := buf_.flatbuffers_field_table(pos_, 32)
if o: MyGame_Example_Stat { buf_, o } else: nil
let o = buf_.flatbuffers_field_table(pos_, 32)
return if o: MyGame_Example_Stat { buf_, o } else: nil
def testbool():
buf_.flatbuffers_field_int8(pos_, 34, 0)
return buf_.flatbuffers_field_int8(pos_, 34, 0)
def testhashs32_fnv1():
buf_.flatbuffers_field_int32(pos_, 36, 0)
return buf_.flatbuffers_field_int32(pos_, 36, 0)
def testhashu32_fnv1():
buf_.flatbuffers_field_int32(pos_, 38, 0)
return buf_.flatbuffers_field_int32(pos_, 38, 0)
def testhashs64_fnv1():
buf_.flatbuffers_field_int64(pos_, 40, 0)
return buf_.flatbuffers_field_int64(pos_, 40, 0)
def testhashu64_fnv1():
buf_.flatbuffers_field_int64(pos_, 42, 0)
return buf_.flatbuffers_field_int64(pos_, 42, 0)
def testhashs32_fnv1a():
buf_.flatbuffers_field_int32(pos_, 44, 0)
return buf_.flatbuffers_field_int32(pos_, 44, 0)
def testhashu32_fnv1a():
buf_.flatbuffers_field_int32(pos_, 46, 0)
return buf_.flatbuffers_field_int32(pos_, 46, 0)
def testhashs64_fnv1a():
buf_.flatbuffers_field_int64(pos_, 48, 0)
return buf_.flatbuffers_field_int64(pos_, 48, 0)
def testhashu64_fnv1a():
buf_.flatbuffers_field_int64(pos_, 50, 0)
return buf_.flatbuffers_field_int64(pos_, 50, 0)
def testarrayofbools(i:int):
buf_.read_int8_le(buf_.flatbuffers_field_vector(pos_, 52) + i * 1)
return buf_.read_int8_le(buf_.flatbuffers_field_vector(pos_, 52) + i * 1)
def testarrayofbools_length():
buf_.flatbuffers_field_vector_len(pos_, 52)
return buf_.flatbuffers_field_vector_len(pos_, 52)
def testf():
buf_.flatbuffers_field_float32(pos_, 54, 3.14159)
return buf_.flatbuffers_field_float32(pos_, 54, 3.14159)
def testf2():
buf_.flatbuffers_field_float32(pos_, 56, 3.0)
return buf_.flatbuffers_field_float32(pos_, 56, 3.0)
def testf3():
buf_.flatbuffers_field_float32(pos_, 58, 0.0)
return buf_.flatbuffers_field_float32(pos_, 58, 0.0)
def testarrayofstring2(i:int):
buf_.flatbuffers_string(buf_.flatbuffers_field_vector(pos_, 60) + i * 4)
return buf_.flatbuffers_string(buf_.flatbuffers_field_vector(pos_, 60) + i * 4)
def testarrayofstring2_length():
buf_.flatbuffers_field_vector_len(pos_, 60)
return buf_.flatbuffers_field_vector_len(pos_, 60)
def testarrayofsortedstruct(i:int):
MyGame_Example_Ability { buf_, buf_.flatbuffers_field_vector(pos_, 62) + i * 8 }
return MyGame_Example_Ability { buf_, buf_.flatbuffers_field_vector(pos_, 62) + i * 8 }
def testarrayofsortedstruct_length():
buf_.flatbuffers_field_vector_len(pos_, 62)
return buf_.flatbuffers_field_vector_len(pos_, 62)
def flex(i:int):
buf_.read_int8_le(buf_.flatbuffers_field_vector(pos_, 64) + i * 1)
return buf_.read_int8_le(buf_.flatbuffers_field_vector(pos_, 64) + i * 1)
def flex_length():
buf_.flatbuffers_field_vector_len(pos_, 64)
return buf_.flatbuffers_field_vector_len(pos_, 64)
def test5(i:int):
MyGame_Example_Test { buf_, buf_.flatbuffers_field_vector(pos_, 66) + i * 4 }
return MyGame_Example_Test { buf_, buf_.flatbuffers_field_vector(pos_, 66) + i * 4 }
def test5_length():
buf_.flatbuffers_field_vector_len(pos_, 66)
return buf_.flatbuffers_field_vector_len(pos_, 66)
def vector_of_longs(i:int):
buf_.read_int64_le(buf_.flatbuffers_field_vector(pos_, 68) + i * 8)
return buf_.read_int64_le(buf_.flatbuffers_field_vector(pos_, 68) + i * 8)
def vector_of_longs_length():
buf_.flatbuffers_field_vector_len(pos_, 68)
return buf_.flatbuffers_field_vector_len(pos_, 68)
def vector_of_doubles(i:int):
buf_.read_float64_le(buf_.flatbuffers_field_vector(pos_, 70) + i * 8)
return buf_.read_float64_le(buf_.flatbuffers_field_vector(pos_, 70) + i * 8)
def vector_of_doubles_length():
buf_.flatbuffers_field_vector_len(pos_, 70)
return buf_.flatbuffers_field_vector_len(pos_, 70)
def parent_namespace_test():
o := buf_.flatbuffers_field_table(pos_, 72)
if o: MyGame_InParentNamespace { buf_, o } else: nil
let o = buf_.flatbuffers_field_table(pos_, 72)
return if o: MyGame_InParentNamespace { buf_, o } else: nil
def vector_of_referrables(i:int):
MyGame_Example_Referrable { buf_, buf_.flatbuffers_indirect(buf_.flatbuffers_field_vector(pos_, 74) + i * 4) }
return MyGame_Example_Referrable { buf_, buf_.flatbuffers_indirect(buf_.flatbuffers_field_vector(pos_, 74) + i * 4) }
def vector_of_referrables_length():
buf_.flatbuffers_field_vector_len(pos_, 74)
return buf_.flatbuffers_field_vector_len(pos_, 74)
def single_weak_reference():
buf_.flatbuffers_field_int64(pos_, 76, 0)
return buf_.flatbuffers_field_int64(pos_, 76, 0)
def vector_of_weak_references(i:int):
buf_.read_int64_le(buf_.flatbuffers_field_vector(pos_, 78) + i * 8)
return buf_.read_int64_le(buf_.flatbuffers_field_vector(pos_, 78) + i * 8)
def vector_of_weak_references_length():
buf_.flatbuffers_field_vector_len(pos_, 78)
return buf_.flatbuffers_field_vector_len(pos_, 78)
def vector_of_strong_referrables(i:int):
MyGame_Example_Referrable { buf_, buf_.flatbuffers_indirect(buf_.flatbuffers_field_vector(pos_, 80) + i * 4) }
return MyGame_Example_Referrable { buf_, buf_.flatbuffers_indirect(buf_.flatbuffers_field_vector(pos_, 80) + i * 4) }
def vector_of_strong_referrables_length():
buf_.flatbuffers_field_vector_len(pos_, 80)
return buf_.flatbuffers_field_vector_len(pos_, 80)
def co_owning_reference():
buf_.flatbuffers_field_int64(pos_, 82, 0)
return buf_.flatbuffers_field_int64(pos_, 82, 0)
def vector_of_co_owning_references(i:int):
buf_.read_int64_le(buf_.flatbuffers_field_vector(pos_, 84) + i * 8)
return buf_.read_int64_le(buf_.flatbuffers_field_vector(pos_, 84) + i * 8)
def vector_of_co_owning_references_length():
buf_.flatbuffers_field_vector_len(pos_, 84)
return buf_.flatbuffers_field_vector_len(pos_, 84)
def non_owning_reference():
buf_.flatbuffers_field_int64(pos_, 86, 0)
return buf_.flatbuffers_field_int64(pos_, 86, 0)
def vector_of_non_owning_references(i:int):
buf_.read_int64_le(buf_.flatbuffers_field_vector(pos_, 88) + i * 8)
return buf_.read_int64_le(buf_.flatbuffers_field_vector(pos_, 88) + i * 8)
def vector_of_non_owning_references_length():
buf_.flatbuffers_field_vector_len(pos_, 88)
return buf_.flatbuffers_field_vector_len(pos_, 88)
def any_unique_type():
buf_.flatbuffers_field_int8(pos_, 90, 0)
return buf_.flatbuffers_field_int8(pos_, 90, 0)
def any_unique_as_M():
MyGame_Example_Monster { buf_, buf_.flatbuffers_field_table(pos_, 92) }
return MyGame_Example_Monster { buf_, buf_.flatbuffers_field_table(pos_, 92) }
def any_unique_as_T():
MyGame_Example_TestSimpleTableWithEnum { buf_, buf_.flatbuffers_field_table(pos_, 92) }
return MyGame_Example_TestSimpleTableWithEnum { buf_, buf_.flatbuffers_field_table(pos_, 92) }
def any_unique_as_M2():
MyGame_Example2_Monster { buf_, buf_.flatbuffers_field_table(pos_, 92) }
return MyGame_Example2_Monster { buf_, buf_.flatbuffers_field_table(pos_, 92) }
def any_ambiguous_type():
buf_.flatbuffers_field_int8(pos_, 94, 0)
return buf_.flatbuffers_field_int8(pos_, 94, 0)
def any_ambiguous_as_M1():
MyGame_Example_Monster { buf_, buf_.flatbuffers_field_table(pos_, 96) }
return MyGame_Example_Monster { buf_, buf_.flatbuffers_field_table(pos_, 96) }
def any_ambiguous_as_M2():
MyGame_Example_Monster { buf_, buf_.flatbuffers_field_table(pos_, 96) }
return MyGame_Example_Monster { buf_, buf_.flatbuffers_field_table(pos_, 96) }
def any_ambiguous_as_M3():
MyGame_Example_Monster { buf_, buf_.flatbuffers_field_table(pos_, 96) }
return MyGame_Example_Monster { buf_, buf_.flatbuffers_field_table(pos_, 96) }
def vector_of_enums(i:int):
buf_.read_int8_le(buf_.flatbuffers_field_vector(pos_, 98) + i * 1)
return buf_.read_int8_le(buf_.flatbuffers_field_vector(pos_, 98) + i * 1)
def vector_of_enums_length():
buf_.flatbuffers_field_vector_len(pos_, 98)
return buf_.flatbuffers_field_vector_len(pos_, 98)
def GetRootAsMonster(buf:string): Monster { buf, buf.flatbuffers_indirect(0) }
def GetRootAsMonster(buf:string): return Monster { buf, buf.flatbuffers_indirect(0) }
def MonsterStart(b_:flatbuffers_builder):
b_.StartObject(48)
@@ -349,7 +348,7 @@ def MonsterStartInventoryVector(b_:flatbuffers_builder, n_:int):
def MonsterCreateInventoryVector(b_:flatbuffers_builder, v_:[int]):
b_.StartVector(1, v_.length, 1)
reverse(v_) e_: b_.PrependUint8(e_)
b_.EndVector(v_.length)
return b_.EndVector(v_.length)
def MonsterAddColor(b_:flatbuffers_builder, color:int):
b_.PrependUint8Slot(6, color, 8)
def MonsterAddTestType(b_:flatbuffers_builder, test_type:int):
@@ -367,7 +366,7 @@ def MonsterStartTestarrayofstringVector(b_:flatbuffers_builder, n_:int):
def MonsterCreateTestarrayofstringVector(b_:flatbuffers_builder, v_:[int]):
b_.StartVector(4, v_.length, 4)
reverse(v_) e_: b_.PrependUOffsetTRelative(e_)
b_.EndVector(v_.length)
return b_.EndVector(v_.length)
def MonsterAddTestarrayoftables(b_:flatbuffers_builder, testarrayoftables:int):
b_.PrependUOffsetTRelativeSlot(11, testarrayoftables, 0)
def MonsterStartTestarrayoftablesVector(b_:flatbuffers_builder, n_:int):
@@ -375,7 +374,7 @@ def MonsterStartTestarrayoftablesVector(b_:flatbuffers_builder, n_:int):
def MonsterCreateTestarrayoftablesVector(b_:flatbuffers_builder, v_:[int]):
b_.StartVector(4, v_.length, 4)
reverse(v_) e_: b_.PrependUOffsetTRelative(e_)
b_.EndVector(v_.length)
return b_.EndVector(v_.length)
def MonsterAddEnemy(b_:flatbuffers_builder, enemy:int):
b_.PrependUOffsetTRelativeSlot(12, enemy, 0)
def MonsterAddTestnestedflatbuffer(b_:flatbuffers_builder, testnestedflatbuffer:int):
@@ -385,7 +384,7 @@ def MonsterStartTestnestedflatbufferVector(b_:flatbuffers_builder, n_:int):
def MonsterCreateTestnestedflatbufferVector(b_:flatbuffers_builder, v_:[int]):
b_.StartVector(1, v_.length, 1)
reverse(v_) e_: b_.PrependUint8(e_)
b_.EndVector(v_.length)
return b_.EndVector(v_.length)
def MonsterAddTestempty(b_:flatbuffers_builder, testempty:int):
b_.PrependUOffsetTRelativeSlot(14, testempty, 0)
def MonsterAddTestbool(b_:flatbuffers_builder, testbool:int):
@@ -413,7 +412,7 @@ def MonsterStartTestarrayofboolsVector(b_:flatbuffers_builder, n_:int):
def MonsterCreateTestarrayofboolsVector(b_:flatbuffers_builder, v_:[int]):
b_.StartVector(1, v_.length, 1)
reverse(v_) e_: b_.PrependBool(e_)
b_.EndVector(v_.length)
return b_.EndVector(v_.length)
def MonsterAddTestf(b_:flatbuffers_builder, testf:float):
b_.PrependFloat32Slot(25, testf, 3.14159)
def MonsterAddTestf2(b_:flatbuffers_builder, testf2:float):
@@ -427,7 +426,7 @@ def MonsterStartTestarrayofstring2Vector(b_:flatbuffers_builder, n_:int):
def MonsterCreateTestarrayofstring2Vector(b_:flatbuffers_builder, v_:[int]):
b_.StartVector(4, v_.length, 4)
reverse(v_) e_: b_.PrependUOffsetTRelative(e_)
b_.EndVector(v_.length)
return b_.EndVector(v_.length)
def MonsterAddTestarrayofsortedstruct(b_:flatbuffers_builder, testarrayofsortedstruct:int):
b_.PrependUOffsetTRelativeSlot(29, testarrayofsortedstruct, 0)
def MonsterStartTestarrayofsortedstructVector(b_:flatbuffers_builder, n_:int):
@@ -439,7 +438,7 @@ def MonsterStartFlexVector(b_:flatbuffers_builder, n_:int):
def MonsterCreateFlexVector(b_:flatbuffers_builder, v_:[int]):
b_.StartVector(1, v_.length, 1)
reverse(v_) e_: b_.PrependUint8(e_)
b_.EndVector(v_.length)
return b_.EndVector(v_.length)
def MonsterAddTest5(b_:flatbuffers_builder, test5:int):
b_.PrependUOffsetTRelativeSlot(31, test5, 0)
def MonsterStartTest5Vector(b_:flatbuffers_builder, n_:int):
@@ -451,7 +450,7 @@ def MonsterStartVectorOfLongsVector(b_:flatbuffers_builder, n_:int):
def MonsterCreateVectorOfLongsVector(b_:flatbuffers_builder, v_:[int]):
b_.StartVector(8, v_.length, 8)
reverse(v_) e_: b_.PrependInt64(e_)
b_.EndVector(v_.length)
return b_.EndVector(v_.length)
def MonsterAddVectorOfDoubles(b_:flatbuffers_builder, vector_of_doubles:int):
b_.PrependUOffsetTRelativeSlot(33, vector_of_doubles, 0)
def MonsterStartVectorOfDoublesVector(b_:flatbuffers_builder, n_:int):
@@ -459,7 +458,7 @@ def MonsterStartVectorOfDoublesVector(b_:flatbuffers_builder, n_:int):
def MonsterCreateVectorOfDoublesVector(b_:flatbuffers_builder, v_:[float]):
b_.StartVector(8, v_.length, 8)
reverse(v_) e_: b_.PrependFloat64(e_)
b_.EndVector(v_.length)
return b_.EndVector(v_.length)
def MonsterAddParentNamespaceTest(b_:flatbuffers_builder, parent_namespace_test:int):
b_.PrependUOffsetTRelativeSlot(34, parent_namespace_test, 0)
def MonsterAddVectorOfReferrables(b_:flatbuffers_builder, vector_of_referrables:int):
@@ -469,7 +468,7 @@ def MonsterStartVectorOfReferrablesVector(b_:flatbuffers_builder, n_:int):
def MonsterCreateVectorOfReferrablesVector(b_:flatbuffers_builder, v_:[int]):
b_.StartVector(4, v_.length, 4)
reverse(v_) e_: b_.PrependUOffsetTRelative(e_)
b_.EndVector(v_.length)
return b_.EndVector(v_.length)
def MonsterAddSingleWeakReference(b_:flatbuffers_builder, single_weak_reference:int):
b_.PrependUint64Slot(36, single_weak_reference, 0)
def MonsterAddVectorOfWeakReferences(b_:flatbuffers_builder, vector_of_weak_references:int):
@@ -479,7 +478,7 @@ def MonsterStartVectorOfWeakReferencesVector(b_:flatbuffers_builder, n_:int):
def MonsterCreateVectorOfWeakReferencesVector(b_:flatbuffers_builder, v_:[int]):
b_.StartVector(8, v_.length, 8)
reverse(v_) e_: b_.PrependUint64(e_)
b_.EndVector(v_.length)
return b_.EndVector(v_.length)
def MonsterAddVectorOfStrongReferrables(b_:flatbuffers_builder, vector_of_strong_referrables:int):
b_.PrependUOffsetTRelativeSlot(38, vector_of_strong_referrables, 0)
def MonsterStartVectorOfStrongReferrablesVector(b_:flatbuffers_builder, n_:int):
@@ -487,7 +486,7 @@ def MonsterStartVectorOfStrongReferrablesVector(b_:flatbuffers_builder, n_:int):
def MonsterCreateVectorOfStrongReferrablesVector(b_:flatbuffers_builder, v_:[int]):
b_.StartVector(4, v_.length, 4)
reverse(v_) e_: b_.PrependUOffsetTRelative(e_)
b_.EndVector(v_.length)
return b_.EndVector(v_.length)
def MonsterAddCoOwningReference(b_:flatbuffers_builder, co_owning_reference:int):
b_.PrependUint64Slot(39, co_owning_reference, 0)
def MonsterAddVectorOfCoOwningReferences(b_:flatbuffers_builder, vector_of_co_owning_references:int):
@@ -497,7 +496,7 @@ def MonsterStartVectorOfCoOwningReferencesVector(b_:flatbuffers_builder, n_:int)
def MonsterCreateVectorOfCoOwningReferencesVector(b_:flatbuffers_builder, v_:[int]):
b_.StartVector(8, v_.length, 8)
reverse(v_) e_: b_.PrependUint64(e_)
b_.EndVector(v_.length)
return b_.EndVector(v_.length)
def MonsterAddNonOwningReference(b_:flatbuffers_builder, non_owning_reference:int):
b_.PrependUint64Slot(41, non_owning_reference, 0)
def MonsterAddVectorOfNonOwningReferences(b_:flatbuffers_builder, vector_of_non_owning_references:int):
@@ -507,7 +506,7 @@ def MonsterStartVectorOfNonOwningReferencesVector(b_:flatbuffers_builder, n_:int
def MonsterCreateVectorOfNonOwningReferencesVector(b_:flatbuffers_builder, v_:[int]):
b_.StartVector(8, v_.length, 8)
reverse(v_) e_: b_.PrependUint64(e_)
b_.EndVector(v_.length)
return b_.EndVector(v_.length)
def MonsterAddAnyUniqueType(b_:flatbuffers_builder, any_unique_type:int):
b_.PrependUint8Slot(43, any_unique_type, 0)
def MonsterAddAnyUnique(b_:flatbuffers_builder, any_unique:int):
@@ -523,41 +522,41 @@ def MonsterStartVectorOfEnumsVector(b_:flatbuffers_builder, n_:int):
def MonsterCreateVectorOfEnumsVector(b_:flatbuffers_builder, v_:[int]):
b_.StartVector(1, v_.length, 1)
reverse(v_) e_: b_.PrependUint8(e_)
b_.EndVector(v_.length)
return b_.EndVector(v_.length)
def MonsterEnd(b_:flatbuffers_builder):
b_.EndObject()
return b_.EndObject()
struct TypeAliases : flatbuffers_handle
class TypeAliases : flatbuffers_handle
def i8():
buf_.flatbuffers_field_int8(pos_, 4, 0)
return buf_.flatbuffers_field_int8(pos_, 4, 0)
def u8():
buf_.flatbuffers_field_int8(pos_, 6, 0)
return buf_.flatbuffers_field_int8(pos_, 6, 0)
def i16():
buf_.flatbuffers_field_int16(pos_, 8, 0)
return buf_.flatbuffers_field_int16(pos_, 8, 0)
def u16():
buf_.flatbuffers_field_int16(pos_, 10, 0)
return buf_.flatbuffers_field_int16(pos_, 10, 0)
def i32():
buf_.flatbuffers_field_int32(pos_, 12, 0)
return buf_.flatbuffers_field_int32(pos_, 12, 0)
def u32():
buf_.flatbuffers_field_int32(pos_, 14, 0)
return buf_.flatbuffers_field_int32(pos_, 14, 0)
def i64():
buf_.flatbuffers_field_int64(pos_, 16, 0)
return buf_.flatbuffers_field_int64(pos_, 16, 0)
def u64():
buf_.flatbuffers_field_int64(pos_, 18, 0)
return buf_.flatbuffers_field_int64(pos_, 18, 0)
def f32():
buf_.flatbuffers_field_float32(pos_, 20, 0.0)
return buf_.flatbuffers_field_float32(pos_, 20, 0.0)
def f64():
buf_.flatbuffers_field_float64(pos_, 22, 0.0)
return buf_.flatbuffers_field_float64(pos_, 22, 0.0)
def v8(i:int):
buf_.read_int8_le(buf_.flatbuffers_field_vector(pos_, 24) + i * 1)
return buf_.read_int8_le(buf_.flatbuffers_field_vector(pos_, 24) + i * 1)
def v8_length():
buf_.flatbuffers_field_vector_len(pos_, 24)
return buf_.flatbuffers_field_vector_len(pos_, 24)
def vf64(i:int):
buf_.read_float64_le(buf_.flatbuffers_field_vector(pos_, 26) + i * 8)
return buf_.read_float64_le(buf_.flatbuffers_field_vector(pos_, 26) + i * 8)
def vf64_length():
buf_.flatbuffers_field_vector_len(pos_, 26)
return buf_.flatbuffers_field_vector_len(pos_, 26)
def GetRootAsTypeAliases(buf:string): TypeAliases { buf, buf.flatbuffers_indirect(0) }
def GetRootAsTypeAliases(buf:string): return TypeAliases { buf, buf.flatbuffers_indirect(0) }
def TypeAliasesStart(b_:flatbuffers_builder):
b_.StartObject(12)
@@ -588,7 +587,7 @@ def TypeAliasesStartV8Vector(b_:flatbuffers_builder, n_:int):
def TypeAliasesCreateV8Vector(b_:flatbuffers_builder, v_:[int]):
b_.StartVector(1, v_.length, 1)
reverse(v_) e_: b_.PrependInt8(e_)
b_.EndVector(v_.length)
return b_.EndVector(v_.length)
def TypeAliasesAddVf64(b_:flatbuffers_builder, vf64:int):
b_.PrependUOffsetTRelativeSlot(11, vf64, 0)
def TypeAliasesStartVf64Vector(b_:flatbuffers_builder, n_:int):
@@ -596,7 +595,7 @@ def TypeAliasesStartVf64Vector(b_:flatbuffers_builder, n_:int):
def TypeAliasesCreateVf64Vector(b_:flatbuffers_builder, v_:[float]):
b_.StartVector(8, v_.length, 8)
reverse(v_) e_: b_.PrependFloat64(e_)
b_.EndVector(v_.length)
return b_.EndVector(v_.length)
def TypeAliasesEnd(b_:flatbuffers_builder):
b_.EndObject()
return b_.EndObject()

View File

@@ -1,36 +1,35 @@
// automatically generated by the FlatBuffers compiler, do not modify
include "flatbuffers.lobster"
import flatbuffers
namespace NamespaceA_NamespaceB
enum +
EnumInNestedNS_A = 0,
EnumInNestedNS_B = 1,
enum EnumInNestedNS:
EnumInNestedNS_A = 0
EnumInNestedNS_B = 1
EnumInNestedNS_C = 2
struct TableInNestedNS
class TableInNestedNS
struct StructInNestedNS
class StructInNestedNS
struct TableInNestedNS : flatbuffers_handle
class TableInNestedNS : flatbuffers_handle
def foo():
buf_.flatbuffers_field_int32(pos_, 4, 0)
return buf_.flatbuffers_field_int32(pos_, 4, 0)
def GetRootAsTableInNestedNS(buf:string): TableInNestedNS { buf, buf.flatbuffers_indirect(0) }
def GetRootAsTableInNestedNS(buf:string): return TableInNestedNS { buf, buf.flatbuffers_indirect(0) }
def TableInNestedNSStart(b_:flatbuffers_builder):
b_.StartObject(1)
def TableInNestedNSAddFoo(b_:flatbuffers_builder, foo:int):
b_.PrependInt32Slot(0, foo, 0)
def TableInNestedNSEnd(b_:flatbuffers_builder):
b_.EndObject()
return b_.EndObject()
struct StructInNestedNS : flatbuffers_handle
class StructInNestedNS : flatbuffers_handle
def a():
buf_.read_int32_le(pos_ + 0)
return buf_.read_int32_le(pos_ + 0)
def b():
buf_.read_int32_le(pos_ + 4)
return buf_.read_int32_le(pos_ + 4)
def CreateStructInNestedNS(b_:flatbuffers_builder, a:int, b:int):
b_.Prep(4, 8)

View File

@@ -1,30 +1,29 @@
// automatically generated by the FlatBuffers compiler, do not modify
include "flatbuffers.lobster"
import flatbuffers
namespace NamespaceA
struct TableInFirstNS
class TableInFirstNS
namespace NamespaceC
struct TableInC
class TableInC
namespace NamespaceA
struct SecondTableInA
class SecondTableInA
struct TableInFirstNS : flatbuffers_handle
class TableInFirstNS : flatbuffers_handle
def foo_table():
o := buf_.flatbuffers_field_table(pos_, 4)
if o: NamespaceA_NamespaceB_TableInNestedNS { buf_, o } else: nil
let o = buf_.flatbuffers_field_table(pos_, 4)
return if o: NamespaceA_NamespaceB_TableInNestedNS { buf_, o } else: nil
def foo_enum():
buf_.flatbuffers_field_int8(pos_, 6, 0)
return buf_.flatbuffers_field_int8(pos_, 6, 0)
def foo_struct():
o := buf_.flatbuffers_field_struct(pos_, 8)
if o: NamespaceA_NamespaceB_StructInNestedNS { buf_, o } else: nil
let o = buf_.flatbuffers_field_struct(pos_, 8)
return if o: NamespaceA_NamespaceB_StructInNestedNS { buf_, o } else: nil
def GetRootAsTableInFirstNS(buf:string): TableInFirstNS { buf, buf.flatbuffers_indirect(0) }
def GetRootAsTableInFirstNS(buf:string): return TableInFirstNS { buf, buf.flatbuffers_indirect(0) }
def TableInFirstNSStart(b_:flatbuffers_builder):
b_.StartObject(3)
@@ -35,19 +34,19 @@ def TableInFirstNSAddFooEnum(b_:flatbuffers_builder, foo_enum:int):
def TableInFirstNSAddFooStruct(b_:flatbuffers_builder, foo_struct:int):
b_.PrependStructSlot(2, foo_struct, 0)
def TableInFirstNSEnd(b_:flatbuffers_builder):
b_.EndObject()
return b_.EndObject()
namespace NamespaceC
struct TableInC : flatbuffers_handle
class TableInC : flatbuffers_handle
def refer_to_a1():
o := buf_.flatbuffers_field_table(pos_, 4)
if o: NamespaceA_TableInFirstNS { buf_, o } else: nil
let o = buf_.flatbuffers_field_table(pos_, 4)
return if o: NamespaceA_TableInFirstNS { buf_, o } else: nil
def refer_to_a2():
o := buf_.flatbuffers_field_table(pos_, 6)
if o: NamespaceA_SecondTableInA { buf_, o } else: nil
let o = buf_.flatbuffers_field_table(pos_, 6)
return if o: NamespaceA_SecondTableInA { buf_, o } else: nil
def GetRootAsTableInC(buf:string): TableInC { buf, buf.flatbuffers_indirect(0) }
def GetRootAsTableInC(buf:string): return TableInC { buf, buf.flatbuffers_indirect(0) }
def TableInCStart(b_:flatbuffers_builder):
b_.StartObject(2)
@@ -56,21 +55,21 @@ def TableInCAddReferToA1(b_:flatbuffers_builder, refer_to_a1:int):
def TableInCAddReferToA2(b_:flatbuffers_builder, refer_to_a2:int):
b_.PrependUOffsetTRelativeSlot(1, refer_to_a2, 0)
def TableInCEnd(b_:flatbuffers_builder):
b_.EndObject()
return b_.EndObject()
namespace NamespaceA
struct SecondTableInA : flatbuffers_handle
class SecondTableInA : flatbuffers_handle
def refer_to_c():
o := buf_.flatbuffers_field_table(pos_, 4)
if o: NamespaceC_TableInC { buf_, o } else: nil
let o = buf_.flatbuffers_field_table(pos_, 4)
return if o: NamespaceC_TableInC { buf_, o } else: nil
def GetRootAsSecondTableInA(buf:string): SecondTableInA { buf, buf.flatbuffers_indirect(0) }
def GetRootAsSecondTableInA(buf:string): return SecondTableInA { buf, buf.flatbuffers_indirect(0) }
def SecondTableInAStart(b_:flatbuffers_builder):
b_.StartObject(1)
def SecondTableInAAddReferToC(b_:flatbuffers_builder, refer_to_c:int):
b_.PrependUOffsetTRelativeSlot(0, refer_to_c, 0)
def SecondTableInAEnd(b_:flatbuffers_builder):
b_.EndObject()
return b_.EndObject()