CLanguage by praeclarum

<PackageReference Include="CLanguage" Version="0.2.12" />

 Expression

public abstract class Expression
public bool HasError { get; set; }

public Location Location { get; protected set; }

protected Expression()

protected static CBasicType GetArithmeticType(Expression leftExpr, Expression rightExpr, string op, EmitContext ec)

protected static int GetInstructionOffset(CBasicType aType, EmitContext ec)

protected static CBasicType GetPromotedType(Expression expr, string op, EmitContext ec)

protected abstract void DoEmit(EmitContext ec)

public void Emit(EmitContext ec)

public abstract CType GetEvaluatedCType(EmitContext ec)