Chunk.cs 701 B

1234567891011121314151617181920212223
  1. using Lua.CodeAnalysis;
  2. namespace Lua.Runtime;
  3. public sealed class Chunk
  4. {
  5. public Chunk? Parent { get; internal set; }
  6. public required string Name { get; init; }
  7. public required Instruction[] Instructions { get; init; }
  8. public required SourcePosition[] SourcePositions { get; init; }
  9. public required LuaValue[] Constants { get; init; }
  10. public required UpValueInfo[] UpValues { get; init; }
  11. public required Chunk[] Functions { get; init; }
  12. public required int ParameterCount { get; init; }
  13. public required bool HasVariableArgments { get; init; }
  14. internal Chunk GetRoot()
  15. {
  16. if (Parent == null) return this;
  17. return Parent.GetRoot();
  18. }
  19. }