private void CreateFunctionCall(FunctionInfo info, ushort returnTypeOpcode, uint textPosition, short lineNumber)
{
var callExpression = new ScriptExpression
{
Index = _currentIndex,
Opcode = info.Opcode,
ReturnType = returnTypeOpcode,
Type = ScriptExpressionType.Group,
Next = DatumIndex.Null,
StringOffset = textPosition,
Value = new LongExpressionValue(_currentIndex.Next),
LineNumber = lineNumber
};
OpenDatumAddExpressionIncrement(callExpression);
var nameExpression = new ScriptExpression
{
Index = _currentIndex,
Opcode = info.Opcode,
ReturnType = _opcodes.GetTypeInfo("function_name").Opcode,
Type = ScriptExpressionType.Expression,
Next = DatumIndex.Null,
StringOffset = _strings.Cache(info.Name),
Value = new LongExpressionValue(0),
LineNumber = lineNumber
};
OpenDatumAddExpressionIncrement(nameExpression);
}