コード例 #1
0
    private Pointer <ES_TypeInfo> GenerateBuiltinTypes_Float(ES_FloatSize size)
    {
        var floatDataPtr = EnvironmentBuilder !.MemoryManager.GetMemory <ES_FloatTypeData> ();
        var namePtr      = Environment !.IdPool.GetIdentifier(ES_PrimitiveTypes.GetFloatName(size));
        var fqn          = new ES_FullyQualifiedName(Environment.GlobalTypesNamespace, namePtr);

        *floatDataPtr = new ES_FloatTypeData(ES_AccessModifier.Public, ArrayPointer <byte> .Null, fqn, size);

        return(new Pointer <ES_TypeInfo> (&floatDataPtr->TypeInfo));
    }
コード例 #2
0
    public ES_FloatTypeData(
        ES_AccessModifier accessMod, ArrayPointer <byte> sourceUnit, ES_FullyQualifiedName fullyQualifiedName,
        ES_FloatSize size
        )
    {
        TypeInfo = new ES_TypeInfo(ES_TypeTag.Float, accessMod, ES_TypeFlag.NoRefs, sourceUnit, fullyQualifiedName);

        FloatSize = size;

        TypeInfo.RuntimeSize = size switch {
            ES_FloatSize.Single => 4,
            ES_FloatSize.Double => 8,

            _ => throw new NotImplementedException("Size not implemented."),
        };
    }