in Sources/BoogieAST/BoogieAST.cs [183:237]
public override string ToString()
{
StringBuilder builder = new StringBuilder();
builder.Append("procedure ");
if (Attributes != null)
{
foreach (BoogieAttribute attribute in Attributes)
{
builder.Append(attribute).Append(" ");
}
}
builder.Append(Name).Append("(");
if (InParams.Count > 0)
{
foreach (BoogieVariable inParam in InParams)
{
builder.Append(inParam).Append(", ");
}
builder.Length -= 2;
}
builder.Append(")");
if (OutParams.Count > 0)
{
builder.Append(" returns (");
foreach (BoogieVariable outParam in OutParams)
{
builder.Append(outParam).Append(", ");
}
builder.Length -= 2;
builder.Append(")");
}
builder.AppendLine(";");
if (ModSet != null)
{
foreach(var m in ModSet)
{
builder.AppendLine($"modifies {m.Name};");
}
}
if (preConditions != null)
{
foreach (var e in preConditions)
{
builder.AppendLine($"requires({e.ToString()});");
}
}
if (postConditions != null)
{
foreach (var e in postConditions)
{
builder.AppendLine($"ensures({e.ToString()});");
}
}
return builder.ToString();
}