Exemplo n.º 1
0
    private void GenerateBuiltinTypes()
    {
        Debug.Assert(Environment is not null);
        Debug.Assert(EnvironmentBuilder is not null);

        var globalTypesList = EnvironmentBuilder.GetOrCreateNamespace(Environment.GlobalTypesNamespace).NamespaceData.Types;

        globalTypesList.Add(GenerateBuiltinTypes_Int(ES_IntSize.Int8, false));
        globalTypesList.Add(GenerateBuiltinTypes_Int(ES_IntSize.Int16, false));
        globalTypesList.Add(GenerateBuiltinTypes_Int(ES_IntSize.Int32, false));
        globalTypesList.Add(GenerateBuiltinTypes_Int(ES_IntSize.Int64, false));

        globalTypesList.Add(GenerateBuiltinTypes_Int(ES_IntSize.Int8, true));
        globalTypesList.Add(GenerateBuiltinTypes_Int(ES_IntSize.Int16, true));
        globalTypesList.Add(GenerateBuiltinTypes_Int(ES_IntSize.Int32, true));
        globalTypesList.Add(GenerateBuiltinTypes_Int(ES_IntSize.Int64, true));

        var floatType  = GenerateBuiltinTypes_Float(ES_FloatSize.Single);
        var doubleType = GenerateBuiltinTypes_Float(ES_FloatSize.Double);

        EnvironmentBuilder.TypeFloat32 = floatType;
        EnvironmentBuilder.TypeFloat64 = doubleType;
        globalTypesList.Add(floatType);
        globalTypesList.Add(doubleType);

        var voidType = GenerateBuiltinTypes_Simple(ES_PrimitiveTypes.Void, ES_TypeTag.Void, 0);
        var boolType = GenerateBuiltinTypes_Simple(ES_PrimitiveTypes.Bool, ES_TypeTag.Bool, 1);

        EnvironmentBuilder.TypeVoid = voidType;
        EnvironmentBuilder.TypeBool = boolType;
        globalTypesList.Add(voidType);
        globalTypesList.Add(boolType);
    }