Show / Hide Table of Contents

    Class IntrinsicPrototype

    An instruction prototype for intrinsics: instructions that behave like calls but are not (necessarily) implemented as calls.

    Various parts of a compiler recognize intrinsics relevant to them and ignore the others.

    Inheritance
    System.Object
    InstructionPrototype
    IntrinsicPrototype
    Inherited Members
    InstructionPrototype.Members
    InstructionPrototype.Instantiate(IReadOnlyList<ValueTag>)
    InstructionPrototype.IsPrototypeOf(Instruction)
    InstructionPrototype.AssertIsPrototypeOf(Instruction, String)
    InstructionPrototype.AssertIsPrototypeOf(Instruction)
    System.Object.ToString()
    System.Object.Equals(System.Object)
    System.Object.Equals(System.Object, System.Object)
    System.Object.ReferenceEquals(System.Object, System.Object)
    System.Object.GetHashCode()
    System.Object.GetType()
    System.Object.MemberwiseClone()
    Namespace: Flame.Compiler.Instructions
    Assembly: Flame.Compiler.dll
    Syntax
    public sealed class IntrinsicPrototype : InstructionPrototype

    Properties

    | Improve this Doc View Source

    Name

    Gets this intrinsic's name.

    Declaration
    public string Name { get; }
    Property Value
    Type Description
    System.String

    The intrinsic's name.

    | Improve this Doc View Source

    ParameterCount

    Gets the number of arguments this instruction takes when instantiated.

    Declaration
    public override int ParameterCount { get; }
    Property Value
    Type Description
    System.Int32

    The number of arguments this instruction takes.

    Overrides
    InstructionPrototype.ParameterCount
    | Improve this Doc View Source

    ParameterTypes

    Gets this intrinsic's parameter types.

    Declaration
    public IReadOnlyList<IType> ParameterTypes { get; }
    Property Value
    Type Description
    System.Collections.Generic.IReadOnlyList<IType>

    The parameter types.

    | Improve this Doc View Source

    ResultType

    Gets the type of value produced instantiations of this prototype.

    Declaration
    public override IType ResultType { get; }
    Property Value
    Type Description
    IType

    A type of value.

    Overrides
    InstructionPrototype.ResultType

    Methods

    | Improve this Doc View Source

    CheckConformance(Instruction, MethodBody)

    Checks if a particular instance of this prototype conforms to the rules for this instruction prototype.

    Declaration
    public override IReadOnlyList<string> CheckConformance(Instruction instance, MethodBody body)
    Parameters
    Type Name Description
    Instruction instance

    An instance of this prototype.

    MethodBody body

    The method body that defines the instruction.

    Returns
    Type Description
    System.Collections.Generic.IReadOnlyList<System.String>

    A list of conformance errors in the instruction.

    Overrides
    InstructionPrototype.CheckConformance(Instruction, MethodBody)
    | Improve this Doc View Source

    Create(String, IType, IReadOnlyList<IType>)

    Gets the intrinsic instruction prototype for a particular intrinsic name, return type and parameter type list.

    Declaration
    public static IntrinsicPrototype Create(string name, IType returnType, IReadOnlyList<IType> parameterTypes)
    Parameters
    Type Name Description
    System.String name

    The intrinsic's name.

    IType returnType

    The type of value returned by the intrinsic.

    System.Collections.Generic.IReadOnlyList<IType> parameterTypes

    A list of the intrinsic's parameter types.

    Returns
    Type Description
    IntrinsicPrototype

    An intrinsic instruction prototype.

    | Improve this Doc View Source

    GetArgumentList(Instruction)

    Gets the argument list in an instruction that conforms to this prototype.

    Declaration
    public IReadOnlyList<ValueTag> GetArgumentList(Instruction instruction)
    Parameters
    Type Name Description
    Instruction instruction

    An instruction that conforms to this prototype.

    Returns
    Type Description
    System.Collections.Generic.IReadOnlyList<ValueTag>

    The formal argument list.

    | Improve this Doc View Source

    Instantiate(ValueTag[])

    Instantiates this prototype with a list of arguments.

    Declaration
    public Instruction Instantiate(params ValueTag[] arguments)
    Parameters
    Type Name Description
    ValueTag[] arguments

    The arguments to instantiate this prototype with.

    Returns
    Type Description
    Instruction

    An instruction whose prototype is equal to this prototype and whose argument list is arguments.

    | Improve this Doc View Source

    Map(MemberMapping)

    Applies a member mapping to this instruction prototype.

    Declaration
    public override InstructionPrototype Map(MemberMapping mapping)
    Parameters
    Type Name Description
    MemberMapping mapping

    A member mapping.

    Returns
    Type Description
    InstructionPrototype

    A transformed instruction prototype.

    Overrides
    InstructionPrototype.Map(MemberMapping)
    • Improve this Doc
    • View Source
    Back to top Generated by DocFX