symconst.inc 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. {
  2. $Id$
  3. Copyright (c) 1993-98 by Florian Klaempfl, Pierre Muller
  4. Symbol table constants
  5. This program is free software; you can redistribute it and/or modify
  6. it under the terms of the GNU General Public License as published by
  7. the Free Software Foundation; either version 2 of the License, or
  8. (at your option) any later version.
  9. This program is distributed in the hope that it will be useful,
  10. but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. GNU General Public License for more details.
  13. You should have received a copy of the GNU General Public License
  14. along with this program; if not, write to the Free Software
  15. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  16. ****************************************************************************
  17. }
  18. const
  19. def_alignment = 4;
  20. { different options }
  21. sp_public = 0;
  22. sp_forwarddef = 1;
  23. sp_protected = 2;
  24. sp_private = 4;
  25. sp_static = 8;
  26. sp_published = 16;
  27. { flags for a definition }
  28. df_needsrtti = $1; { the definitions needs rtti }
  29. df_hasrtti = $2; { the rtti is generated }
  30. { options for tprocdef and tprocvardef }
  31. poexceptions = $1; { unused }
  32. povirtualmethod = $2; { Procedure is a virtual method }
  33. poclearstack = $4; { Use IBM flat calling convention. (Used by GCC.) }
  34. poconstructor = $8; { Procedure is a constructor }
  35. podestructor = $10; { Procedure is a destructor }
  36. pointernproc = $20; { Procedure has compiler magic}
  37. poexports = $40; { Procedure is exported }
  38. poiocheck = $80; { IO checking should be done after a call to the procedure }
  39. poabstractmethod = $100; { Procedure is an abstract method }
  40. pointerrupt = $200; { Procedure is an interrupt handler }
  41. poinline = $400; { Procedure is an assembler macro }
  42. poassembler = $800; { Procedure is written in assembler }
  43. pooperator = $1000; { Procedure defines an operator }
  44. poexternal = $2000; { Procedure is external (in other object or lib)}
  45. poleftright = $4000; { Push parameters from left to right }
  46. poproginit = $8000; { Program initialization }
  47. postaticmethod = $10000; { static method }
  48. pooverridingmethod=$20000; { method with override directive }
  49. poclassmethod = $40000; { class method }
  50. pounitinit = $80000; { unit initialization }
  51. pomethodpointer = $100000; { method pointer, only in procvardef, also used for 'with object do' }
  52. pocdecl = $200000; { procedure uses C styled calling }
  53. popalmossyscall = $400000; { procedure is a PalmOS system call }
  54. pointernconst = $800000; { procedure has constant evaluator intern }
  55. poregister = $1000000; { procedure uses register (fastcall) calling }
  56. pounitfinalize = $2000000; { unit finalization }
  57. postdcall = $4000000; { procedure uses stdcall call }
  58. { relevant options for assigning a proc or a procvar to a procvar }
  59. po_compatibility_options = $7FFFFFFF-
  60. (pomethodpointer+povirtualmethod+pooverridingmethod);
  61. { options for objects and classes }
  62. oo_is_abstract = $1;
  63. oo_is_class = $2;
  64. oo_hasvirtual = $4;
  65. oo_hasprivate = $8;
  66. oo_hasprotected = $10;
  67. oo_isforward = $20;
  68. oo_can_have_published = $40;
  69. oo_hasconstructor = $80;
  70. oo_hasdestructor = $100;
  71. oo_hasvmt = $200;
  72. { options for properties }
  73. ppo_indexed = $1;
  74. ppo_defaultproperty = $2;
  75. ppo_stored = $4;
  76. { options for variables }
  77. vo_regable = 1;
  78. vo_is_C_var = 2;
  79. vo_is_external = 4;
  80. vo_is_dll_var = 8;
  81. {
  82. $Log$
  83. Revision 1.1 1999-01-12 14:32:49 peter
  84. * splitted from symtable.pas
  85. }