file.odin 581 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package odin_ast
  2. import "core:odin/tokenizer"
  3. Package_Kind :: enum {
  4. Normal,
  5. Runtime,
  6. Init,
  7. }
  8. Package :: struct {
  9. kind: Package_Kind,
  10. id: int,
  11. name: string,
  12. fullpath: string,
  13. files: []^File,
  14. user_data: rawptr,
  15. }
  16. File :: struct {
  17. id: int,
  18. pkg: ^Package,
  19. fullpath: string,
  20. src: []byte,
  21. pkg_decl: ^Package_Decl,
  22. pkg_token: tokenizer.Token,
  23. pkg_name: string,
  24. decls: [dynamic]^Stmt,
  25. imports: [dynamic]^Import_Decl,
  26. directive_count: int,
  27. comments: [dynamic]^Comment_Group,
  28. syntax_warning_count: int,
  29. syntax_error_count: int,
  30. }