private void CreateScriptReference(ScriptInfo info, ushort returnTypeOpcode, uint textPosition, short lineNumber)
{
var scriptReference = new ScriptExpression
{
Index = _currentIndex,
Opcode = info.Opcode,
ReturnType = returnTypeOpcode,
Type = ScriptExpressionType.ScriptReference,
Next = DatumIndex.Null,
StringOffset = textPosition,
Value = new LongExpressionValue(_currentIndex.Next),
LineNumber = lineNumber
};
OpenDatumAddExpressionIncrement(scriptReference);
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);
}
}