home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / gnat-2.06-src.tgz / tar.out / fsf / gnat / ada / a-atree.h < prev    next >
C/C++ Source or Header  |  1996-09-28  |  17KB  |  412 lines

  1. /****************************************************************************/
  2. /*                                                                          */
  3. /*                         GNAT COMPILER COMPONENTS                         */
  4. /*                                                                          */
  5. /*                              A _ A T R E E                               */
  6. /*                                                                          */
  7. /*                              C Header File                               */
  8. /*                                                                          */
  9. /*                            $Revision: 1.38 $                             */
  10. /*                                                                          */
  11. /*        Copyright (c) 1992,1993,1994,1995 NYU, All Rights Reserved        */
  12. /*                                                                          */
  13. /* GNAT is free software;  you can  redistribute it  and/or modify it under */
  14. /* terms of the  GNU General Public License as published  by the Free Soft- */
  15. /* ware  Foundation;  either version 2,  or (at your option) any later ver- */
  16. /* sion.  GNAT is distributed in the hope that it will be useful, but WITH- */
  17. /* OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY */
  18. /* or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License */
  19. /* for  more details.  You should have  received  a copy of the GNU General */
  20. /* Public License  distributed with GNAT;  see file COPYING.  If not, write */
  21. /* to the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
  22. /*                                                                          */
  23. /****************************************************************************/
  24.  
  25. /* This is the C header corresponding to the Ada package specification for
  26.    Atree. It also contains the implementations of inlined functions from the
  27.    package body for Tree.  It was generated manually from atree.ads and
  28.    atree.adb and must be kept synchronized with changes in these files.
  29.  
  30.    Note that only routines for reading the tree are included, since the tree
  31.    transformer is not supposed to modify the tree in any way. */
  32.  
  33. struct Non_Extended
  34. {
  35.   Source_Ptr   sloc;
  36.   Int           link;
  37.   Int           field1;
  38.   Int           field2;
  39.   Int           field3;
  40.   Int           field4;
  41.   Int           field5;
  42. };
  43.  
  44. /* The Following structure corresponds to variant with is_extension = True.  */
  45. struct Extended
  46. {
  47.   Int           field6;
  48.   Int           field7;
  49.   Int           field8;
  50.   Int           field9;
  51.   Int           field10;
  52.   Int           field11;
  53.   Int           field12;
  54. };
  55.  
  56. struct Node
  57. {
  58.   Boolean      is_extension      :  1;
  59.   Boolean      pflag1            :  1;
  60.   Boolean      pflag2            :  1;
  61.   Boolean      in_list           :  1;
  62.   Boolean      rewrite_sub       :  1;
  63.   Boolean      rewrite_ins       :  1;
  64.   Boolean      comes_from_source :  1;
  65.   Boolean      flag1             :  1;
  66.  
  67.   Boolean      flag3  :  1;
  68.   Boolean      flag4  :  1;
  69.   Boolean      flag5  :  1;
  70.   Boolean      flag6  :  1;
  71.   Boolean      flag7  :  1;
  72.   Boolean      flag8  :  1;
  73.   Boolean      flag9  :  1;
  74.   Boolean      flag10 :  1;
  75.  
  76.   Boolean      flag11 :  1;
  77.   Boolean      flag12 :  1;
  78.   Boolean      flag13 :  1;
  79.   Boolean      flag14 :  1;
  80.   Boolean      flag15 :  1;
  81.   Boolean      flag16 :  1;
  82.   Boolean      flag17 :  1;
  83.   Boolean      flag18 :  1;
  84.  
  85.   unsigned char kind  :  8;
  86.  
  87.   union variant
  88.     {
  89.       struct Non_Extended NX;
  90.       struct Extended EX;
  91.     } V;
  92. };
  93.  
  94. /* The actual tree is an array of nodes. The pointer to this array is passed
  95.    as a parameter to the tree transformer procedure and stored in the global
  96.    variable Nodes_Ptr after adjusting it by subtracting Node_First_Entry, so
  97.    that Node_Id values can be used as subscripts.  */
  98. extern struct Node *Nodes_Ptr;
  99.  
  100. /* Structure used for extra flags in third component overlaying Nkind */
  101. struct Flag_Byte
  102. {
  103.   Boolean      flag65        :  1;
  104.   Boolean      flag66        :  1;
  105.   Boolean      flag67        :  1;
  106.   Boolean      flag68        :  1;
  107.   Boolean      flag69        :  1;
  108.   Boolean      flag70        :  1;
  109.   Boolean      flag71        :  1;
  110.   Boolean      flag72        :  1;
  111. };
  112.  
  113. typedef struct Flag_Byte *Flag_Byte_Ptr;
  114.  
  115. /* Structure used for extra flags in third component overlaying Field12 */
  116. struct Flag_Word
  117. {
  118.   Boolean      flag73        :  1;
  119.   Boolean      flag74        :  1;
  120.   Boolean      flag75        :  1;
  121.   Boolean      flag76        :  1;
  122.   Boolean      flag77        :  1;
  123.   Boolean      flag78        :  1;
  124.   Boolean      flag79        :  1;
  125.   Boolean      flag80        :  1;
  126.   Boolean      flag81        :  1;
  127.   Boolean      flag82        :  1;
  128.   Boolean      flag83        :  1;
  129.   Boolean      flag84        :  1;
  130.   Boolean      flag85        :  1;
  131.   Boolean      flag86        :  1;
  132.   Boolean      flag87        :  1;
  133.   Boolean      flag88        :  1;
  134.   Boolean      flag89        :  1;
  135.   Boolean      flag90        :  1;
  136.   Boolean      flag91        :  1;
  137.   Boolean      flag92        :  1;
  138.   Boolean      flag93        :  1;
  139.   Boolean      flag94        :  1;
  140.   Boolean      flag95        :  1;
  141.   Boolean      flag96        :  1;
  142.   Short        convention   :  8;
  143. };
  144.  
  145. typedef struct Flag_Word *Flag_Word_Ptr;
  146.  
  147. /* Structure used for extra flags in fourth component overlaying Field12 */
  148. struct Flag_Word2
  149. {
  150.   Boolean      flag97        :  1;
  151.   Boolean      flag98        :  1;
  152.   Boolean      flag99        :  1;
  153.   Boolean      flag100        :  1;
  154.   Boolean      flag101        :  1;
  155.   Boolean      flag102        :  1;
  156.   Boolean      flag103        :  1;
  157.   Boolean      flag104        :  1;
  158.   Boolean      flag105        :  1;
  159.   Boolean      flag106        :  1;
  160.   Boolean      flag107        :  1;
  161.   Boolean      flag108        :  1;
  162.   Boolean      flag109        :  1;
  163.   Boolean      flag110        :  1;
  164.   Boolean      flag111        :  1;
  165.   Boolean      flag112        :  1;
  166.   Short        Spare1       :  8;
  167.   Short        Spare2       :  8;
  168. };
  169.  
  170. typedef struct Flag_Word2 *Flag_Word2_Ptr;
  171.  
  172. #define Parent atree__parent
  173. extern Node_Id Parent PROTO((Node_Id));
  174.  
  175. /* Overloaded Functions:
  176.  
  177.    These functions are overloaded in the original Ada source, but there is
  178.    only one corresponding C function, which works as described below.    */
  179.  
  180. /* Type used for union of Node_Id, List_Id, Elist_Id. */
  181. typedef Int Tree_Id;
  182.  
  183. /* These two functions can only be used for Node_Id and List_Id values and
  184.    they work in the C version because Empty = No_List = 0.  */
  185.  
  186. INLINE Boolean
  187. No (N)
  188.      Tree_Id N;
  189. {
  190.   return N == Empty;
  191. }
  192.  
  193. INLINE Boolean
  194. Present (N)
  195.      Tree_Id N;
  196. {
  197.   return N != Empty;
  198. }
  199.  
  200. /* Test the range of N to distinguish between the cases of Node_Id, List_Id
  201.    and Elist_Id arguments.  */
  202. extern Node_Id Parent        PROTO((Tree_Id));
  203.  
  204. /* Node Access Functions:  */
  205.  
  206. #define Nkind(N)        ((Node_Kind)(Nodes_Ptr [N].kind))
  207. #define Ekind(N)        ((Entity_Kind)(Nodes_Ptr [N + 1].kind))
  208. #define Sloc(N)         (Nodes_Ptr [N].V.NX.sloc)
  209. #define Paren_Count (N) (Nodes_Ptr [N].Pflag1 + 2 * Nodes_Ptr [N].Pflag2)
  210.  
  211. #define Field1(N)     (Nodes_Ptr [N].V.NX.field1)
  212. #define Field2(N)     (Nodes_Ptr [N].V.NX.field2)
  213. #define Field3(N)     (Nodes_Ptr [N].V.NX.field3)
  214. #define Field4(N)     (Nodes_Ptr [N].V.NX.field4)
  215. #define Field5(N)     (Nodes_Ptr [N].V.NX.field5)
  216. #define Field6(N)     (Nodes_Ptr [N+1].V.EX.field6)
  217. #define Field7(N)     (Nodes_Ptr [N+1].V.EX.field7)
  218. #define Field8(N)     (Nodes_Ptr [N+1].V.EX.field8)
  219. #define Field9(N)     (Nodes_Ptr [N+1].V.EX.field9)
  220. #define Field10(N)    (Nodes_Ptr [N+1].V.EX.field10)
  221. #define Field11(N)    (Nodes_Ptr [N+1].V.EX.field11)
  222. #define Field12(N)    (Nodes_Ptr [N+1].V.EX.field12)
  223. #define Field13(N)    (Nodes_Ptr [N+2].V.EX.field6)
  224. #define Field14(N)    (Nodes_Ptr [N+2].V.EX.field7)
  225. #define Field15(N)    (Nodes_Ptr [N+2].V.EX.field8)
  226. #define Field16(N)    (Nodes_Ptr [N+2].V.EX.field9)
  227. #define Field17(N)    (Nodes_Ptr [N+2].V.EX.field10)
  228. #define Field18(N)    (Nodes_Ptr [N+2].V.EX.field11)
  229. #define Field19(N)    (Nodes_Ptr [N+3].V.EX.field6)
  230. #define Field20(N)    (Nodes_Ptr [N+3].V.EX.field7)
  231. #define Field21(N)    (Nodes_Ptr [N+3].V.EX.field8)
  232. #define Field22(N)    (Nodes_Ptr [N+3].V.EX.field9)
  233.  
  234. #define Node1(N)      (Nodes_Ptr [N].V.NX.field1)
  235. #define Node2(N)      (Nodes_Ptr [N].V.NX.field2)
  236. #define Node3(N)      (Nodes_Ptr [N].V.NX.field3)
  237. #define Node4(N)      (Nodes_Ptr [N].V.NX.field4)
  238. #define Node5(N)      (Nodes_Ptr [N].V.NX.field5)
  239. #define Node6(N)      (Nodes_Ptr [N+1].V.EX.field6)
  240. #define Node7(N)      (Nodes_Ptr [N+1].V.EX.field7)
  241. #define Node8(N)      (Nodes_Ptr [N+1].V.EX.field8)
  242. #define Node9(N)      (Nodes_Ptr [N+1].V.EX.field9)
  243. #define Node10(N)     (Nodes_Ptr [N+1].V.EX.field10)
  244. #define Node11(N)     (Nodes_Ptr [N+1].V.EX.field11)
  245. #define Node12(N)     (Nodes_Ptr [N+1].V.EX.field12)
  246. #define Node13(N)     (Nodes_Ptr [N+2].V.EX.field6)
  247. #define Node14(N)     (Nodes_Ptr [N+2].V.EX.field7)
  248. #define Node15(N)     (Nodes_Ptr [N+2].V.EX.field8)
  249. #define Node16(N)     (Nodes_Ptr [N+2].V.EX.field9)
  250. #define Node17(N)     (Nodes_Ptr [N+2].V.EX.field10)
  251. #define Node18(N)     (Nodes_Ptr [N+2].V.EX.field11)
  252. #define Node19(N)     (Nodes_Ptr [N+3].V.EX.field6)
  253. #define Node20(N)     (Nodes_Ptr [N+3].V.EX.field7)
  254. #define Node21(N)     (Nodes_Ptr [N+3].V.EX.field8)
  255. #define Node22(N)     (Nodes_Ptr [N+3].V.EX.field9)
  256.  
  257. #define List1(N)      (Nodes_Ptr [N].V.NX.field1)
  258. #define List2(N)      (Nodes_Ptr [N].V.NX.field2)
  259. #define List3(N)      (Nodes_Ptr [N].V.NX.field3)
  260. #define List4(N)      (Nodes_Ptr [N].V.NX.field4)
  261. #define List5(N)      (Nodes_Ptr [N].V.NX.field5)
  262.  
  263. #define Elist3(N)     (Nodes_Ptr [N].V.NX.field3)
  264. #define Elist6(N)     (Nodes_Ptr [N+1].V.EX.field6)
  265. #define Elist7(N)     (Nodes_Ptr [N+1].V.EX.field7)
  266. #define Elist13(N)    (Nodes_Ptr [N+2].V.EX.field6)
  267.  
  268. #define Name1(N)      (Nodes_Ptr [N].V.NX.field1)
  269. #define Name2(N)      (Nodes_Ptr [N].V.NX.field2)
  270.  
  271. #define Str3(N)       (Nodes_Ptr [N].V.NX.field3)
  272.  
  273. #define Char_Code2(N) (Nodes_Ptr [N].V.NX.field2 - Char_Code_Bias)
  274.  
  275. #define Uint3(N)      (Nodes_Ptr [N].V.NX.field3)
  276. #define Uint4(N)      (Nodes_Ptr [N].V.NX.field4)
  277. #define Uint8(N)      (Nodes_Ptr [N+1].V.EX.field8)
  278. #define Uint9(N)      (Nodes_Ptr [N+1].V.EX.field9)
  279. #define Uint11(N)     (Nodes_Ptr [N+1].V.EX.field11)
  280. #define Uint12(N)     (Nodes_Ptr [N+1].V.EX.field12)
  281. #define Uint15(N)     (Nodes_Ptr [N+2].V.EX.field8)
  282.  
  283. #define Ureal3(N)     (Nodes_Ptr [N].V.NX.field3)
  284. #define Ureal6(N)     (Nodes_Ptr [N+1].V.EX.field6)
  285. #define Ureal7(N)     (Nodes_Ptr [N+1].V.EX.field7)
  286.  
  287. #define Flag1(N)      (Nodes_Ptr [N].flag1)
  288. #define Comes_From_Source(N) (Nodes_Ptr [N].comes_from_source)
  289. #define Flag3(N)      (Nodes_Ptr [N].flag3)
  290. #define Flag4(N)      (Nodes_Ptr [N].flag4)
  291. #define Flag5(N)      (Nodes_Ptr [N].flag5)
  292. #define Flag6(N)      (Nodes_Ptr [N].flag6)
  293. #define Flag7(N)      (Nodes_Ptr [N].flag7)
  294. #define Flag8(N)      (Nodes_Ptr [N].flag8)
  295. #define Flag9(N)      (Nodes_Ptr [N].flag9)
  296. #define Flag10(N)     (Nodes_Ptr [N].flag10)
  297. #define Flag11(N)     (Nodes_Ptr [N].flag11)
  298. #define Flag12(N)     (Nodes_Ptr [N].flag12)
  299. #define Flag13(N)     (Nodes_Ptr [N].flag13)
  300. #define Flag14(N)     (Nodes_Ptr [N].flag14)
  301. #define Flag15(N)     (Nodes_Ptr [N].flag15)
  302. #define Flag16(N)     (Nodes_Ptr [N].flag16)
  303. #define Flag17(N)     (Nodes_Ptr [N].flag17)
  304. #define Flag18(N)     (Nodes_Ptr [N].flag18)
  305.  
  306. #define Flag19(N)     (Nodes_Ptr [N+1].in_list)
  307. #define Flag20(N)     (Nodes_Ptr [N+1].rewrite_sub)
  308. #define Flag21(N)     (Nodes_Ptr [N+1].rewrite_ins)
  309. #define Flag22(N)     (Nodes_Ptr [N+1].flag1)
  310. #define Flag23(N)     (Nodes_Ptr [N+1].comes_from_source)
  311. #define Flag24(N)     (Nodes_Ptr [N+1].flag3)
  312. #define Flag25(N)     (Nodes_Ptr [N+1].flag4)
  313. #define Flag26(N)     (Nodes_Ptr [N+1].flag5)
  314. #define Flag27(N)     (Nodes_Ptr [N+1].flag6)
  315. #define Flag28(N)     (Nodes_Ptr [N+1].flag7)
  316. #define Flag29(N)     (Nodes_Ptr [N+1].flag8)
  317. #define Flag30(N)     (Nodes_Ptr [N+1].flag9)
  318. #define Flag31(N)     (Nodes_Ptr [N+1].flag10)
  319. #define Flag32(N)     (Nodes_Ptr [N+1].flag11)
  320. #define Flag33(N)     (Nodes_Ptr [N+1].flag12)
  321. #define Flag34(N)     (Nodes_Ptr [N+1].flag13)
  322. #define Flag35(N)     (Nodes_Ptr [N+1].flag14)
  323. #define Flag36(N)     (Nodes_Ptr [N+1].flag15)
  324. #define Flag37(N)     (Nodes_Ptr [N+1].flag16)
  325. #define Flag38(N)     (Nodes_Ptr [N+1].flag17)
  326. #define Flag39(N)     (Nodes_Ptr [N+1].flag18)
  327.  
  328. #define Flag40(N)     (Nodes_Ptr [N+2].in_list)
  329. #define Flag41(N)     (Nodes_Ptr [N+2].rewrite_sub)
  330. #define Flag42(N)     (Nodes_Ptr [N+2].rewrite_ins)
  331. #define Flag43(N)     (Nodes_Ptr [N+2].flag1)
  332. #define Flag44(N)     (Nodes_Ptr [N+2].comes_from_source)
  333. #define Flag45(N)     (Nodes_Ptr [N+2].flag3)
  334. #define Flag46(N)     (Nodes_Ptr [N+2].flag4)
  335. #define Flag47(N)     (Nodes_Ptr [N+2].flag5)
  336. #define Flag48(N)     (Nodes_Ptr [N+2].flag6)
  337. #define Flag49(N)     (Nodes_Ptr [N+2].flag7)
  338. #define Flag50(N)     (Nodes_Ptr [N+2].flag8)
  339. #define Flag51(N)     (Nodes_Ptr [N+2].flag9)
  340. #define Flag52(N)     (Nodes_Ptr [N+2].flag10)
  341. #define Flag53(N)     (Nodes_Ptr [N+2].flag11)
  342. #define Flag54(N)     (Nodes_Ptr [N+2].flag12)
  343. #define Flag55(N)     (Nodes_Ptr [N+2].flag13)
  344. #define Flag56(N)     (Nodes_Ptr [N+2].flag14)
  345. #define Flag57(N)     (Nodes_Ptr [N+2].flag15)
  346. #define Flag58(N)     (Nodes_Ptr [N+2].flag16)
  347. #define Flag59(N)     (Nodes_Ptr [N+2].flag17)
  348. #define Flag60(N)     (Nodes_Ptr [N+2].flag18)
  349. #define Flag61(N)     (Nodes_Ptr [N+1].pflag1)
  350. #define Flag62(N)     (Nodes_Ptr [N+1].pflag2)
  351. #define Flag63(N)     (Nodes_Ptr [N+2].pflag1)
  352. #define Flag64(N)     (Nodes_Ptr [N+2].pflag2)
  353.  
  354. #define Flag65(N)     ((Flag_Byte_Ptr)(&Nodes_Ptr [N+2].kind))->flag65
  355. #define Flag66(N)     ((Flag_Byte_Ptr)(&Nodes_Ptr [N+2].kind))->flag66
  356. #define Flag67(N)     ((Flag_Byte_Ptr)(&Nodes_Ptr [N+2].kind))->flag67
  357. #define Flag68(N)     ((Flag_Byte_Ptr)(&Nodes_Ptr [N+2].kind))->flag68
  358. #define Flag69(N)     ((Flag_Byte_Ptr)(&Nodes_Ptr [N+2].kind))->flag69
  359. #define Flag70(N)     ((Flag_Byte_Ptr)(&Nodes_Ptr [N+2].kind))->flag70
  360. #define Flag71(N)     ((Flag_Byte_Ptr)(&Nodes_Ptr [N+2].kind))->flag71
  361. #define Flag72(N)     ((Flag_Byte_Ptr)(&Nodes_Ptr [N+2].kind))->flag72
  362.  
  363. #define FWP Flag_Word_Ptr
  364.  
  365. #define Flag73(N)     ((FWP)(&Nodes_Ptr [N+2].V.EX.field12))->flag73
  366. #define Flag74(N)     ((FWP)(&Nodes_Ptr [N+2].V.EX.field12))->flag74
  367. #define Flag75(N)     ((FWP)(&Nodes_Ptr [N+2].V.EX.field12))->flag75
  368. #define Flag76(N)     ((FWP)(&Nodes_Ptr [N+2].V.EX.field12))->flag76
  369. #define Flag77(N)     ((FWP)(&Nodes_Ptr [N+2].V.EX.field12))->flag77
  370. #define Flag78(N)     ((FWP)(&Nodes_Ptr [N+2].V.EX.field12))->flag78
  371. #define Flag79(N)     ((FWP)(&Nodes_Ptr [N+2].V.EX.field12))->flag79
  372. #define Flag80(N)     ((FWP)(&Nodes_Ptr [N+2].V.EX.field12))->flag80
  373. #define Flag81(N)     ((FWP)(&Nodes_Ptr [N+2].V.EX.field12))->flag81
  374. #define Flag82(N)     ((FWP)(&Nodes_Ptr [N+2].V.EX.field12))->flag82
  375. #define Flag83(N)     ((FWP)(&Nodes_Ptr [N+2].V.EX.field12))->flag83
  376. #define Flag84(N)     ((FWP)(&Nodes_Ptr [N+2].V.EX.field12))->flag84
  377. #define Flag85(N)     ((FWP)(&Nodes_Ptr [N+2].V.EX.field12))->flag85
  378. #define Flag86(N)     ((FWP)(&Nodes_Ptr [N+2].V.EX.field12))->flag86
  379. #define Flag87(N)     ((FWP)(&Nodes_Ptr [N+2].V.EX.field12))->flag87
  380. #define Flag88(N)     ((FWP)(&Nodes_Ptr [N+2].V.EX.field12))->flag88
  381. #define Flag89(N)     ((FWP)(&Nodes_Ptr [N+2].V.EX.field12))->flag89
  382. #define Flag90(N)     ((FWP)(&Nodes_Ptr [N+2].V.EX.field12))->flag90
  383. #define Flag91(N)     ((FWP)(&Nodes_Ptr [N+2].V.EX.field12))->flag91
  384. #define Flag92(N)     ((FWP)(&Nodes_Ptr [N+2].V.EX.field12))->flag92
  385. #define Flag93(N)     ((FWP)(&Nodes_Ptr [N+2].V.EX.field12))->flag93
  386. #define Flag94(N)     ((FWP)(&Nodes_Ptr [N+2].V.EX.field12))->flag94
  387. #define Flag95(N)     ((FWP)(&Nodes_Ptr [N+2].V.EX.field12))->flag95
  388. #define Flag96(N)     ((FWP)(&Nodes_Ptr [N+2].V.EX.field12))->flag96
  389.  
  390. #define Convention(N) ((FWP)(&Nodes_Ptr [N+2].V.EX.field12))->convention
  391.  
  392. #define FWP2 Flag_Word2_Ptr
  393.  
  394. #define Flag97(N)     ((FWP2)(&Nodes_Ptr [N+3].V.EX.field12))->flag97
  395. #define Flag98(N)     ((FWP2)(&Nodes_Ptr [N+3].V.EX.field12))->flag98
  396. #define Flag99(N)     ((FWP2)(&Nodes_Ptr [N+3].V.EX.field12))->flag99
  397. #define Flag100(N)    ((FWP2)(&Nodes_Ptr [N+3].V.EX.field12))->flag100
  398. #define Flag101(N)    ((FWP2)(&Nodes_Ptr [N+3].V.EX.field12))->flag101
  399. #define Flag102(N)    ((FWP2)(&Nodes_Ptr [N+3].V.EX.field12))->flag102
  400. #define Flag103(N)    ((FWP2)(&Nodes_Ptr [N+3].V.EX.field12))->flag103
  401. #define Flag104(N)    ((FWP2)(&Nodes_Ptr [N+3].V.EX.field12))->flag104
  402. #define Flag105(N)    ((FWP2)(&Nodes_Ptr [N+3].V.EX.field12))->flag105
  403. #define Flag106(N)    ((FWP2)(&Nodes_Ptr [N+3].V.EX.field12))->flag106
  404. #define Flag107(N)    ((FWP2)(&Nodes_Ptr [N+3].V.EX.field12))->flag107
  405. #define Flag108(N)    ((FWP2)(&Nodes_Ptr [N+3].V.EX.field12))->flag108
  406. #define Flag109(N)    ((FWP2)(&Nodes_Ptr [N+3].V.EX.field12))->flag109
  407. #define Flag110(N)    ((FWP2)(&Nodes_Ptr [N+3].V.EX.field12))->flag110
  408. #define Flag111(N)    ((FWP2)(&Nodes_Ptr [N+3].V.EX.field12))->flag111
  409. #define Flag112(N)    ((FWP2)(&Nodes_Ptr [N+3].V.EX.field12))->flag112
  410.  
  411. /* End of a-atree.h (C version of Atree package specification) */
  412.