public override void ExitCond(HS_Gen1Parser.CondContext context)
{
if (_debug)
{
_logger.Cond(context, CompilerContextAction.Exit);
}
// Link to the compiler generated begin call of the last open cond group.
LinkDatum();
// Add the final expression of the cond construct. Not sure why the official Blam Script compiler adds these.
ushort typeOpcode = _opcodes.GetTypeInfo(_condReturnType).Opcode;
var expression = new ScriptExpression
{
Index = _currentIndex,
Opcode = typeOpcode,
ReturnType = typeOpcode,
Type = ScriptExpressionType.Expression,
Next = DatumIndex.Null,
StringOffset = context.GetCorrectTextPosition(_missingCarriageReturnPositions),
Value = new LongExpressionValue(0),
LineNumber = 0
};
AddExpressionIncrement(expression);
// Open the first group.
int firstGroupIndex = _condIndeces.Pop();
OpenDatum(firstGroupIndex);
}