AddressOfExpression
using CLanguage.Compiler;
using CLanguage.Types;
using System.Runtime.CompilerServices;
namespace CLanguage.Syntax
{
[System.Runtime.CompilerServices.NullableContext(1)]
[System.Runtime.CompilerServices.Nullable(0)]
public class AddressOfExpression : Expression
{
public Expression InnerExpression { get; }
public AddressOfExpression(Expression innerExpression)
{
InnerExpression = innerExpression;
}
public override CType GetEvaluatedCType(EmitContext ec)
{
return InnerExpression.GetEvaluatedCType(ec).Pointer;
}
protected override void DoEmit(EmitContext ec)
{
InnerExpression.EmitPointer(ec);
}
}
}