1 /* bld.h -- Public #include File (module.h template V1.0)
2 Copyright (C) 1995, 1996 Free Software Foundation, Inc.
3 Contributed by James Craig Burley.
5 This file is part of GNU Fortran.
7 GNU Fortran is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2, or (at your option)
12 GNU Fortran is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with GNU Fortran; see the file COPYING. If not, write to
19 the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
28 /* Allow multiple inclusion to work. */
33 /* Simple definitions and enumerations. */
70 FFEBLD_constCHARACTER1
,
71 FFEBLD_constCHARACTER2
,
72 FFEBLD_constCHARACTER3
,
73 FFEBLD_constCHARACTER4
,
74 FFEBLD_constCHARACTER5
,
75 FFEBLD_constCHARACTER6
,
76 FFEBLD_constCHARACTER7
,
77 FFEBLD_constCHARACTER8
,
78 FFEBLD_constHOLLERITH
,
79 FFEBLD_constTYPELESS_FIRST
,
80 FFEBLD_constBINARY_MIL
= FFEBLD_constTYPELESS_FIRST
,
81 FFEBLD_constBINARY_VXT
,
82 FFEBLD_constOCTAL_MIL
,
83 FFEBLD_constOCTAL_VXT
,
84 FFEBLD_constHEX_X_MIL
,
85 FFEBLD_constHEX_X_VXT
,
86 FFEBLD_constHEX_Z_MIL
,
87 FFEBLD_constHEX_Z_VXT
,
88 FFEBLD_constTYPELESS_LAST
= FFEBLD_constHEX_Z_VXT
,
94 #define FFEBLD_OP(KWD,NAME,ARITY) KWD,
102 typedef struct _ffebld_
*ffebld
;
103 typedef unsigned char ffebldArity
;
104 typedef union _ffebld_constant_array_ ffebldConstantArray
;
105 typedef struct _ffebld_constant_
*ffebldConstant
;
106 typedef union _ffebld_constant_union_ ffebldConstantUnion
;
107 typedef ffebld
*ffebldListBottom
;
108 typedef unsigned int ffebldListLength
;
109 #define ffebldListLength_f ""
110 typedef struct _ffebld_pool_stack_
*ffebldPoolstack_
;
112 /* Include files needed by this one. */
124 #define FFEBLD_whereconstPROGUNIT_ 1
125 #define FFEBLD_whereconstFILE_ 2
127 #if FFECOM_targetCURRENT == FFECOM_targetFFE
128 #define FFEBLD_whereconstCURRENT_ FFEBLD_whereconstPROGUNIT_
129 #elif FFECOM_targetCURRENT == FFECOM_targetGCC
130 #define FFEBLD_whereconstCURRENT_ FFEBLD_whereconstFILE_
135 /* Structure definitions. */
137 #define FFEBLD_constINTEGERDEFAULT FFEBLD_constINTEGER1
138 #define FFEBLD_constLOGICALDEFAULT FFEBLD_constLOGICAL1
139 #define FFEBLD_constREALDEFAULT FFEBLD_constREAL1
140 #define FFEBLD_constREALDOUBLE FFEBLD_constREAL2
141 #define FFEBLD_constREALQUAD FFEBLD_constREAL3
142 #define FFEBLD_constCOMPLEX FFEBLD_constCOMPLEX1
143 #define FFEBLD_constCOMPLEXDOUBLE FFEBLD_constCOMPLEX2
144 #define FFEBLD_constCOMPLEXQUAD FFEBLD_constCOMPLEX3
145 #define FFEBLD_constCHARACTERDEFAULT FFEBLD_constCHARACTER1
147 union _ffebld_constant_union_
149 ffetargetTypeless typeless
;
150 ffetargetHollerith hollerith
;
151 #if FFETARGET_okINTEGER1
152 ffetargetInteger1 integer1
;
154 #if FFETARGET_okINTEGER2
155 ffetargetInteger2 integer2
;
157 #if FFETARGET_okINTEGER3
158 ffetargetInteger3 integer3
;
160 #if FFETARGET_okINTEGER4
161 ffetargetInteger4 integer4
;
163 #if FFETARGET_okINTEGER5
164 ffetargetInteger5 integer5
;
166 #if FFETARGET_okINTEGER6
167 ffetargetInteger6 integer6
;
169 #if FFETARGET_okINTEGER7
170 ffetargetInteger7 integer7
;
172 #if FFETARGET_okINTEGER8
173 ffetargetInteger8 integer8
;
175 #if FFETARGET_okLOGICAL1
176 ffetargetLogical1 logical1
;
178 #if FFETARGET_okLOGICAL2
179 ffetargetLogical2 logical2
;
181 #if FFETARGET_okLOGICAL3
182 ffetargetLogical3 logical3
;
184 #if FFETARGET_okLOGICAL4
185 ffetargetLogical4 logical4
;
187 #if FFETARGET_okLOGICAL5
188 ffetargetLogical5 logical5
;
190 #if FFETARGET_okLOGICAL6
191 ffetargetLogical6 logical6
;
193 #if FFETARGET_okLOGICAL7
194 ffetargetLogical7 logical7
;
196 #if FFETARGET_okLOGICAL8
197 ffetargetLogical8 logical8
;
199 #if FFETARGET_okREAL1
200 ffetargetReal1 real1
;
202 #if FFETARGET_okREAL2
203 ffetargetReal2 real2
;
205 #if FFETARGET_okREAL3
206 ffetargetReal3 real3
;
208 #if FFETARGET_okREAL4
209 ffetargetReal4 real4
;
211 #if FFETARGET_okREAL5
212 ffetargetReal5 real5
;
214 #if FFETARGET_okREAL6
215 ffetargetReal6 real6
;
217 #if FFETARGET_okREAL7
218 ffetargetReal7 real7
;
220 #if FFETARGET_okREAL8
221 ffetargetReal8 real8
;
223 #if FFETARGET_okCOMPLEX1
224 ffetargetComplex1 complex1
;
226 #if FFETARGET_okCOMPLEX2
227 ffetargetComplex2 complex2
;
229 #if FFETARGET_okCOMPLEX3
230 ffetargetComplex3 complex3
;
232 #if FFETARGET_okCOMPLEX4
233 ffetargetComplex4 complex4
;
235 #if FFETARGET_okCOMPLEX5
236 ffetargetComplex5 complex5
;
238 #if FFETARGET_okCOMPLEX6
239 ffetargetComplex6 complex6
;
241 #if FFETARGET_okCOMPLEX7
242 ffetargetComplex7 complex7
;
244 #if FFETARGET_okCOMPLEX8
245 ffetargetComplex8 complex8
;
247 #if FFETARGET_okCHARACTER1
248 ffetargetCharacter1 character1
;
250 #if FFETARGET_okCHARACTER2
251 ffetargetCharacter2 character2
;
253 #if FFETARGET_okCHARACTER3
254 ffetargetCharacter3 character3
;
256 #if FFETARGET_okCHARACTER4
257 ffetargetCharacter4 character4
;
259 #if FFETARGET_okCHARACTER5
260 ffetargetCharacter5 character5
;
262 #if FFETARGET_okCHARACTER6
263 ffetargetCharacter6 character6
;
265 #if FFETARGET_okCHARACTER7
266 ffetargetCharacter7 character7
;
268 #if FFETARGET_okCHARACTER8
269 ffetargetCharacter8 character8
;
273 union _ffebld_constant_array_
275 #if FFETARGET_okINTEGER1
276 ffetargetInteger1
*integer1
;
278 #if FFETARGET_okINTEGER2
279 ffetargetInteger2
*integer2
;
281 #if FFETARGET_okINTEGER3
282 ffetargetInteger3
*integer3
;
284 #if FFETARGET_okINTEGER4
285 ffetargetInteger4
*integer4
;
287 #if FFETARGET_okINTEGER5
288 ffetargetInteger5
*integer5
;
290 #if FFETARGET_okINTEGER6
291 ffetargetInteger6
*integer6
;
293 #if FFETARGET_okINTEGER7
294 ffetargetInteger7
*integer7
;
296 #if FFETARGET_okINTEGER8
297 ffetargetInteger8
*integer8
;
299 #if FFETARGET_okLOGICAL1
300 ffetargetLogical1
*logical1
;
302 #if FFETARGET_okLOGICAL2
303 ffetargetLogical2
*logical2
;
305 #if FFETARGET_okLOGICAL3
306 ffetargetLogical3
*logical3
;
308 #if FFETARGET_okLOGICAL4
309 ffetargetLogical4
*logical4
;
311 #if FFETARGET_okLOGICAL5
312 ffetargetLogical5
*logical5
;
314 #if FFETARGET_okLOGICAL6
315 ffetargetLogical6
*logical6
;
317 #if FFETARGET_okLOGICAL7
318 ffetargetLogical7
*logical7
;
320 #if FFETARGET_okLOGICAL8
321 ffetargetLogical8
*logical8
;
323 #if FFETARGET_okREAL1
324 ffetargetReal1
*real1
;
326 #if FFETARGET_okREAL2
327 ffetargetReal2
*real2
;
329 #if FFETARGET_okREAL3
330 ffetargetReal3
*real3
;
332 #if FFETARGET_okREAL4
333 ffetargetReal4
*real4
;
335 #if FFETARGET_okREAL5
336 ffetargetReal5
*real5
;
338 #if FFETARGET_okREAL6
339 ffetargetReal6
*real6
;
341 #if FFETARGET_okREAL7
342 ffetargetReal7
*real7
;
344 #if FFETARGET_okREAL8
345 ffetargetReal8
*real8
;
347 #if FFETARGET_okCOMPLEX1
348 ffetargetComplex1
*complex1
;
350 #if FFETARGET_okCOMPLEX2
351 ffetargetComplex2
*complex2
;
353 #if FFETARGET_okCOMPLEX3
354 ffetargetComplex3
*complex3
;
356 #if FFETARGET_okCOMPLEX4
357 ffetargetComplex4
*complex4
;
359 #if FFETARGET_okCOMPLEX5
360 ffetargetComplex5
*complex5
;
362 #if FFETARGET_okCOMPLEX6
363 ffetargetComplex6
*complex6
;
365 #if FFETARGET_okCOMPLEX7
366 ffetargetComplex7
*complex7
;
368 #if FFETARGET_okCOMPLEX8
369 ffetargetComplex8
*complex8
;
371 #if FFETARGET_okCHARACTER1
372 ffetargetCharacterUnit1
*character1
;
374 #if FFETARGET_okCHARACTER2
375 ffetargetCharacterUnit2
*character2
;
377 #if FFETARGET_okCHARACTER3
378 ffetargetCharacterUnit3
*character3
;
380 #if FFETARGET_okCHARACTER4
381 ffetargetCharacterUnit4
*character4
;
383 #if FFETARGET_okCHARACTER5
384 ffetargetCharacterUnit5
*character5
;
386 #if FFETARGET_okCHARACTER6
387 ffetargetCharacterUnit6
*character6
;
389 #if FFETARGET_okCHARACTER7
390 ffetargetCharacterUnit7
*character7
;
392 #if FFETARGET_okCHARACTER8
393 ffetargetCharacterUnit8
*character8
;
400 ffeinfo info
; /* Not used or valid for
401 op=={STAR,ITEM,BOUNDS,REPEAT,LABTER,
409 #ifdef FFECOM_nonterHOOK
410 ffecomNonter hook
; /* Whatever the compiler/backend wants! */
418 #ifdef FFECOM_itemHOOK
419 ffecomItem hook
; /* Whatever the compiler/backend wants! */
426 ffebld orig
; /* Original expression, or NULL if none. */
427 ffetargetAlign pad
; /* Initial padding (for DATA, etc.). */
432 ffebldConstantArray array
;
433 ffetargetOffset size
;
434 ffetargetAlign pad
; /* Initial padding (for DATA, etc.). */
439 ffebldConstantArray array
;
441 ffetargetAlign pad
; /* Initial padding (for DATA, etc.). */
447 ffeintrinGen generic
; /* Id for generic intrinsic. */
448 ffeintrinSpec specific
; /* Id for specific intrinsic. */
449 ffeintrinImp implementation
; /* Id for implementation. */
450 bool do_iter
; /* TRUE if this ref is a read-only ref by
451 definition (ref within DO loop using this
461 struct _ffebld_constant_
464 ffebldConstant first_complex
; /* First complex const with me as
466 ffebldConstant negated
; /* We point to each other through here. */
467 ffebldConst consttype
;
468 #ifdef FFECOM_constantHOOK
469 ffecomConstant hook
; /* Whatever the compiler/backend wants! */
471 bool numeric
; /* A numeric kind of constant. */
472 ffebldConstantUnion u
;
475 struct _ffebld_pool_stack_
477 ffebldPoolstack_ next
;
481 /* Global objects accessed by users of this module. */
483 extern ffebldArity ffebld_arity_op_
[];
484 extern struct _ffebld_pool_stack_ ffebld_pool_stack_
;
486 /* Declare functions with prototypes. */
488 int ffebld_constant_cmp (ffebldConstant c1
, ffebldConstant c2
);
489 #if FFECOM_targetCURRENT == FFECOM_targetFFE
490 void ffebld_constant_dump (ffebldConstant c
);
492 bool ffebld_constant_is_magical (ffebldConstant c
);
493 bool ffebld_constant_is_zero (ffebldConstant c
);
494 #if FFETARGET_okCHARACTER1
495 ffebldConstant
ffebld_constant_new_character1 (ffelexToken t
);
496 ffebldConstant
ffebld_constant_new_character1_val (ffetargetCharacter1 val
);
498 #if FFETARGET_okCHARACTER2
499 ffebldConstant
ffebld_constant_new_character2 (ffelexToken t
);
500 ffebldConstant
ffebld_constant_new_character2_val (ffetargetCharacter2 val
);
502 #if FFETARGET_okCHARACTER3
503 ffebldConstant
ffebld_constant_new_character3 (ffelexToken t
);
504 ffebldConstant
ffebld_constant_new_character3_val (ffetargetCharacter3 val
);
506 #if FFETARGET_okCHARACTER4
507 ffebldConstant
ffebld_constant_new_character4 (ffelexToken t
);
508 ffebldConstant
ffebld_constant_new_character4_val (ffetargetCharacter4 val
);
510 #if FFETARGET_okCHARACTER5
511 ffebldConstant
ffebld_constant_new_character5 (ffelexToken t
);
512 ffebldConstant
ffebld_constant_new_character5_val (ffetargetCharacter5 val
);
514 #if FFETARGET_okCHARACTER6
515 ffebldConstant
ffebld_constant_new_character6 (ffelexToken t
);
516 ffebldConstant
ffebld_constant_new_character6_val (ffetargetCharacter6 val
);
518 #if FFETARGET_okCHARACTER7
519 ffebldConstant
ffebld_constant_new_character7 (ffelexToken t
);
520 ffebldConstant
ffebld_constant_new_character7_val (ffetargetCharacter7 val
);
522 #if FFETARGET_okCHARACTER8
523 ffebldConstant
ffebld_constant_new_character8 (ffelexToken t
);
524 ffebldConstant
ffebld_constant_new_character8_val (ffetargetCharacter8 val
);
526 #if FFETARGET_okCOMPLEX1
527 ffebldConstant
ffebld_constant_new_complex1 (ffebldConstant real
,
528 ffebldConstant imaginary
);
529 ffebldConstant
ffebld_constant_new_complex1_val (ffetargetComplex1 val
);
531 #if FFETARGET_okCOMPLEX2
532 ffebldConstant
ffebld_constant_new_complex2 (ffebldConstant real
,
533 ffebldConstant imaginary
);
534 ffebldConstant
ffebld_constant_new_complex2_val (ffetargetComplex2 val
);
536 #if FFETARGET_okCOMPLEX3
537 ffebldConstant
ffebld_constant_new_complex3 (ffebldConstant real
,
538 ffebldConstant imaginary
);
539 ffebldConstant
ffebld_constant_new_complex3_val (ffetargetComplex3 val
);
541 #if FFETARGET_okCOMPLEX4
542 ffebldConstant
ffebld_constant_new_complex4 (ffebldConstant real
,
543 ffebldConstant imaginary
);
544 ffebldConstant
ffebld_constant_new_complex4_val (ffetargetComplex4 val
);
546 #if FFETARGET_okCOMPLEX5
547 ffebldConstant
ffebld_constant_new_complex5 (ffebldConstant real
,
548 ffebldConstant imaginary
);
549 ffebldConstant
ffebld_constant_new_complex5_val (ffetargetComplex5 val
);
551 #if FFETARGET_okCOMPLEX6
552 ffebldConstant
ffebld_constant_new_complex6 (ffebldConstant real
,
553 ffebldConstant imaginary
);
554 ffebldConstant
ffebld_constant_new_complex6_val (ffetargetComplex6 val
);
556 #if FFETARGET_okCOMPLEX7
557 ffebldConstant
ffebld_constant_new_complex7 (ffebldConstant real
,
558 ffebldConstant imaginary
);
559 ffebldConstant
ffebld_constant_new_complex7_val (ffetargetComplex7 val
);
561 #if FFETARGET_okCOMPLEX8
562 ffebldConstant
ffebld_constant_new_complex8 (ffebldConstant real
,
563 ffebldConstant imaginary
);
564 ffebldConstant
ffebld_constant_new_complex8_val (ffetargetComplex8 val
);
566 ffebldConstant
ffebld_constant_new_hollerith (ffelexToken t
);
567 ffebldConstant
ffebld_constant_new_hollerith_val (ffetargetHollerith val
);
568 #if FFETARGET_okINTEGER1
569 ffebldConstant
ffebld_constant_new_integer1 (ffelexToken t
);
570 ffebldConstant
ffebld_constant_new_integer1_val (ffetargetInteger1 val
);
572 #if FFETARGET_okINTEGER2
573 ffebldConstant
ffebld_constant_new_integer2 (ffelexToken t
);
574 ffebldConstant
ffebld_constant_new_integer2_val (ffetargetInteger2 val
);
576 #if FFETARGET_okINTEGER3
577 ffebldConstant
ffebld_constant_new_integer3 (ffelexToken t
);
578 ffebldConstant
ffebld_constant_new_integer3_val (ffetargetInteger3 val
);
580 #if FFETARGET_okINTEGER4
581 ffebldConstant
ffebld_constant_new_integer4 (ffelexToken t
);
582 ffebldConstant
ffebld_constant_new_integer4_val (ffetargetInteger4 val
);
584 #if FFETARGET_okINTEGER5
585 ffebldConstant
ffebld_constant_new_integer5 (ffelexToken t
);
586 ffebldConstant
ffebld_constant_new_integer5_val (ffetargetInteger5 val
);
588 #if FFETARGET_okINTEGER6
589 ffebldConstant
ffebld_constant_new_integer6 (ffelexToken t
);
590 ffebldConstant
ffebld_constant_new_integer6_val (ffetargetInteger6 val
);
592 #if FFETARGET_okINTEGER7
593 ffebldConstant
ffebld_constant_new_integer7 (ffelexToken t
);
594 ffebldConstant
ffebld_constant_new_integer7_val (ffetargetInteger7 val
);
596 #if FFETARGET_okINTEGER8
597 ffebldConstant
ffebld_constant_new_integer8 (ffelexToken t
);
598 ffebldConstant
ffebld_constant_new_integer8_val (ffetargetInteger8 val
);
600 ffebldConstant
ffebld_constant_new_integerbinary (ffelexToken t
);
601 ffebldConstant
ffebld_constant_new_integerhex (ffelexToken t
);
602 ffebldConstant
ffebld_constant_new_integeroctal (ffelexToken t
);
603 #if FFETARGET_okLOGICAL1
604 ffebldConstant
ffebld_constant_new_logical1 (bool truth
);
605 ffebldConstant
ffebld_constant_new_logical1_val (ffetargetLogical1 val
);
607 #if FFETARGET_okLOGICAL2
608 ffebldConstant
ffebld_constant_new_logical2 (bool truth
);
609 ffebldConstant
ffebld_constant_new_logical2_val (ffetargetLogical2 val
);
611 #if FFETARGET_okLOGICAL3
612 ffebldConstant
ffebld_constant_new_logical3 (bool truth
);
613 ffebldConstant
ffebld_constant_new_logical3_val (ffetargetLogical3 val
);
615 #if FFETARGET_okLOGICAL4
616 ffebldConstant
ffebld_constant_new_logical4 (bool truth
);
617 ffebldConstant
ffebld_constant_new_logical4_val (ffetargetLogical4 val
);
619 #if FFETARGET_okLOGICAL5
620 ffebldConstant
ffebld_constant_new_logical5 (bool truth
);
621 ffebldConstant
ffebld_constant_new_logical5_val (ffetargetLogical5 val
);
623 #if FFETARGET_okLOGICAL6
624 ffebldConstant
ffebld_constant_new_logical6 (bool truth
);
625 ffebldConstant
ffebld_constant_new_logical6_val (ffetargetLogical6 val
);
627 #if FFETARGET_okLOGICAL7
628 ffebldConstant
ffebld_constant_new_logical7 (bool truth
);
629 ffebldConstant
ffebld_constant_new_logical7_val (ffetargetLogical7 val
);
631 #if FFETARGET_okLOGICAL8
632 ffebldConstant
ffebld_constant_new_logical8 (bool truth
);
633 ffebldConstant
ffebld_constant_new_logical8_val (ffetargetLogical8 val
);
635 #if FFETARGET_okREAL1
636 ffebldConstant
ffebld_constant_new_real1 (ffelexToken integer
,
637 ffelexToken decimal
, ffelexToken fraction
, ffelexToken exponent
,
638 ffelexToken exponent_sign
, ffelexToken exponent_digits
);
639 ffebldConstant
ffebld_constant_new_real1_val (ffetargetReal1 val
);
641 #if FFETARGET_okREAL2
642 ffebldConstant
ffebld_constant_new_real2 (ffelexToken integer
,
643 ffelexToken decimal
, ffelexToken fraction
, ffelexToken exponent
,
644 ffelexToken exponent_sign
, ffelexToken exponent_digits
);
645 ffebldConstant
ffebld_constant_new_real2_val (ffetargetReal2 val
);
647 #if FFETARGET_okREAL3
648 ffebldConstant
ffebld_constant_new_real3 (ffelexToken integer
,
649 ffelexToken decimal
, ffelexToken fraction
, ffelexToken exponent
,
650 ffelexToken exponent_sign
, ffelexToken exponent_digits
);
651 ffebldConstant
ffebld_constant_new_real3_val (ffetargetReal3 val
);
653 #if FFETARGET_okREAL4
654 ffebldConstant
ffebld_constant_new_real4 (ffelexToken integer
,
655 ffelexToken decimal
, ffelexToken fraction
, ffelexToken exponent
,
656 ffelexToken exponent_sign
, ffelexToken exponent_digits
);
657 ffebldConstant
ffebld_constant_new_real4_val (ffetargetReal4 val
);
659 #if FFETARGET_okREAL5
660 ffebldConstant
ffebld_constant_new_real5 (ffelexToken integer
,
661 ffelexToken decimal
, ffelexToken fraction
, ffelexToken exponent
,
662 ffelexToken exponent_sign
, ffelexToken exponent_digits
);
663 ffebldConstant
ffebld_constant_new_real5_val (ffetargetReal5 val
);
665 #if FFETARGET_okREAL6
666 ffebldConstant
ffebld_constant_new_real6 (ffelexToken integer
,
667 ffelexToken decimal
, ffelexToken fraction
, ffelexToken exponent
,
668 ffelexToken exponent_sign
, ffelexToken exponent_digits
);
669 ffebldConstant
ffebld_constant_new_real6_val (ffetargetReal6 val
);
671 #if FFETARGET_okREAL7
672 ffebldConstant
ffebld_constant_new_real7 (ffelexToken integer
,
673 ffelexToken decimal
, ffelexToken fraction
, ffelexToken exponent
,
674 ffelexToken exponent_sign
, ffelexToken exponent_digits
);
675 ffebldConstant
ffebld_constant_new_real7_val (ffetargetReal7 val
);
677 #if FFETARGET_okREAL8
678 ffebldConstant
ffebld_constant_new_real8 (ffelexToken integer
,
679 ffelexToken decimal
, ffelexToken fraction
, ffelexToken exponent
,
680 ffelexToken exponent_sign
, ffelexToken exponent_digits
);
681 ffebldConstant
ffebld_constant_new_real8_val (ffetargetReal8 val
);
683 ffebldConstant
ffebld_constant_new_typeless_bm (ffelexToken t
);
684 ffebldConstant
ffebld_constant_new_typeless_bv (ffelexToken t
);
685 ffebldConstant
ffebld_constant_new_typeless_hxm (ffelexToken t
);
686 ffebldConstant
ffebld_constant_new_typeless_hxv (ffelexToken t
);
687 ffebldConstant
ffebld_constant_new_typeless_hzm (ffelexToken t
);
688 ffebldConstant
ffebld_constant_new_typeless_hzv (ffelexToken t
);
689 ffebldConstant
ffebld_constant_new_typeless_om (ffelexToken t
);
690 ffebldConstant
ffebld_constant_new_typeless_ov (ffelexToken t
);
691 ffebldConstant
ffebld_constant_new_typeless_val (ffebldConst type
,
692 ffetargetTypeless val
);
693 ffebldConstant
ffebld_constant_negated (ffebldConstant c
);
694 #if FFECOM_targetCURRENT == FFECOM_targetFFE
695 void ffebld_constantarray_dump (ffebldConstantArray array
, ffeinfoBasictype bt
,
696 ffeinfoKindtype kt
, ffetargetOffset size
, ffebit bits
);
698 ffebldConstantUnion
ffebld_constantarray_get (ffebldConstantArray array
,
699 ffeinfoBasictype bt
, ffeinfoKindtype kt
, ffetargetOffset offset
);
700 void ffebld_constantarray_kill (ffebldConstantArray array
, ffeinfoBasictype bt
,
701 ffeinfoKindtype kt
, ffetargetOffset size
);
702 ffebldConstantArray
ffebld_constantarray_new (ffeinfoBasictype bt
,
703 ffeinfoKindtype kt
, ffetargetOffset size
);
704 void ffebld_constantarray_prepare (void **aptr
, void **cptr
, size_t *size
,
705 ffebldConstantArray array
, ffeinfoBasictype abt
, ffeinfoKindtype akt
,
706 ffetargetOffset offset
, ffebldConstantUnion
*constant
,
707 ffeinfoBasictype cbt
, ffeinfoKindtype ckt
);
708 void ffebld_constantarray_preparray (void **aptr
, void **cptr
, size_t *size
,
709 ffebldConstantArray array
, ffeinfoBasictype abt
, ffeinfoKindtype akt
,
710 ffetargetOffset offset
, ffebldConstantArray source_array
,
711 ffeinfoBasictype cbt
, ffeinfoKindtype ckt
);
712 void ffebld_constantarray_put (ffebldConstantArray array
, ffeinfoBasictype bt
,
713 ffeinfoKindtype kt
, ffetargetOffset offset
, ffebldConstantUnion constant
);
714 #if FFECOM_targetCURRENT == FFECOM_targetFFE
715 void ffebld_constantunion_dump (ffebldConstantUnion u
, ffeinfoBasictype bt
,
717 void ffebld_dump (ffebld b
);
718 void ffebld_dump_prefix (FILE *out
, ffeinfoBasictype bt
, ffeinfoKindtype kt
);
720 void ffebld_init_0 (void);
721 void ffebld_init_1 (void);
722 void ffebld_init_2 (void);
723 ffebldListLength
ffebld_list_length (ffebld l
);
724 ffebld
ffebld_new_accter (ffebldConstantArray array
, ffebit b
);
725 ffebld
ffebld_new_arrter (ffebldConstantArray array
, ffetargetOffset size
);
726 ffebld
ffebld_new_conter_with_orig (ffebldConstant c
, ffebld orig
);
727 ffebld
ffebld_new_item (ffebld head
, ffebld trail
);
728 ffebld
ffebld_new_labter (ffelab l
);
729 ffebld
ffebld_new_labtok (ffelexToken t
);
730 ffebld
ffebld_new_none (ffebldOp o
);
731 ffebld
ffebld_new_symter (ffesymbol s
, ffeintrinGen gen
, ffeintrinSpec spec
,
733 ffebld
ffebld_new_one (ffebldOp o
, ffebld left
);
734 ffebld
ffebld_new_two (ffebldOp o
, ffebld left
, ffebld right
);
735 const char *ffebld_op_string (ffebldOp o
);
736 void ffebld_pool_pop (void);
737 void ffebld_pool_push (mallocPool pool
);
738 ffetargetCharacterSize
ffebld_size_max (ffebld b
);
742 #define ffebld_accter(b) ((b)->u.accter.array)
743 #define ffebld_accter_bits(b) ((b)->u.accter.bits)
744 #define ffebld_accter_pad(b) ((b)->u.accter.pad)
745 #define ffebld_accter_set_bits(b,bt) ((b)->u.accter.bits = (bt))
746 #define ffebld_accter_set_pad(b,p) ((b)->u.accter.pad = (p))
747 #define ffebld_accter_size(b) ffebit_size((b)->u.accter.bits)
748 #define ffebld_append_item(b,i) (**(b) = ffebld_new_item((i),NULL), \
749 *(b) = &((**(b))->u.item.trail))
750 #define ffebld_arity(b) ffebld_arity_op(ffebld_op(b))
751 #define ffebld_arity_op(o) (ffebld_arity_op_[o])
752 #define ffebld_arrter(b) ((b)->u.arrter.array)
753 #define ffebld_arrter_pad(b) ((b)->u.arrter.pad)
754 #define ffebld_arrter_set_pad(b,p) ((b)->u.arrter.pad = (p))
755 #define ffebld_arrter_set_size(b,s) ((b)->u.arrter.size = (s))
756 #define ffebld_arrter_size(b) ((b)->u.arrter.size)
757 #define ffebld_basictype(b) (ffeinfo_basictype (ffebld_info ((b))))
758 #if FFEBLD_whereconstCURRENT_ == FFEBLD_whereconstPROGUNIT_
759 #define ffebld_constant_pool() ffe_pool_program_unit()
760 #elif FFEBLD_whereconstCURRENT_ == FFEBLD_whereconstFILE_
761 #define ffebld_constant_pool() ffe_pool_file()
765 #define ffebld_constant_character1(c) ((c)->u.character1)
766 #define ffebld_constant_character2(c) ((c)->u.character2)
767 #define ffebld_constant_character3(c) ((c)->u.character3)
768 #define ffebld_constant_character4(c) ((c)->u.character4)
769 #define ffebld_constant_character5(c) ((c)->u.character5)
770 #define ffebld_constant_character6(c) ((c)->u.character6)
771 #define ffebld_constant_character7(c) ((c)->u.character7)
772 #define ffebld_constant_character8(c) ((c)->u.character8)
773 #define ffebld_constant_characterdefault ffebld_constant_character1
774 #define ffebld_constant_complex1(c) ((c)->u.complex1)
775 #define ffebld_constant_complex2(c) ((c)->u.complex2)
776 #define ffebld_constant_complex3(c) ((c)->u.complex3)
777 #define ffebld_constant_complex4(c) ((c)->u.complex4)
778 #define ffebld_constant_complex5(c) ((c)->u.complex5)
779 #define ffebld_constant_complex6(c) ((c)->u.complex6)
780 #define ffebld_constant_complex7(c) ((c)->u.complex7)
781 #define ffebld_constant_complex8(c) ((c)->u.complex8)
782 #define ffebld_constant_complexdefault ffebld_constant_complex1
783 #define ffebld_constant_complexdouble ffebld_constant_complex2
784 #define ffebld_constant_complexquad ffebld_constant_complex3
785 #define ffebld_constant_copy(c) (c)
786 #define ffebld_constant_hollerith(c) ((c)->u.hollerith)
787 #define ffebld_constant_hook(c) ((c)->hook)
788 #define ffebld_constant_integer1(c) ((c)->u.integer1)
789 #define ffebld_constant_integer2(c) ((c)->u.integer2)
790 #define ffebld_constant_integer3(c) ((c)->u.integer3)
791 #define ffebld_constant_integer4(c) ((c)->u.integer4)
792 #define ffebld_constant_integer5(c) ((c)->u.integer5)
793 #define ffebld_constant_integer6(c) ((c)->u.integer6)
794 #define ffebld_constant_integer7(c) ((c)->u.integer7)
795 #define ffebld_constant_integer8(c) ((c)->u.integer8)
796 #define ffebld_constant_integerdefault ffebld_constant_integer1
797 #define ffebld_constant_is_numeric(c) ((c)->numeric)
798 #define ffebld_constant_logical1(c) ((c)->u.logical1)
799 #define ffebld_constant_logical2(c) ((c)->u.logical2)
800 #define ffebld_constant_logical3(c) ((c)->u.logical3)
801 #define ffebld_constant_logical4(c) ((c)->u.logical4)
802 #define ffebld_constant_logical5(c) ((c)->u.logical5)
803 #define ffebld_constant_logical6(c) ((c)->u.logical6)
804 #define ffebld_constant_logical7(c) ((c)->u.logical7)
805 #define ffebld_constant_logical8(c) ((c)->u.logical8)
806 #define ffebld_constant_logicaldefault ffebld_constant_logical1
807 #define ffebld_constant_new_characterdefault ffebld_constant_new_character1
808 #define ffebld_constant_new_characterdefault_val ffebld_constant_new_character1_val
809 #define ffebld_constant_new_complexdefault ffebld_constant_new_complex1
810 #define ffebld_constant_new_complexdefault_val ffebld_constant_new_complex1_val
811 #define ffebld_constant_new_complexdouble ffebld_constant_new_complex2
812 #define ffebld_constant_new_complexdouble_val ffebld_constant_new_complex2_val
813 #define ffebld_constant_new_complexquad ffebld_constant_new_complex3
814 #define ffebld_constant_new_complexquad_valffebld_constant_new_complex3_val
815 #define ffebld_constant_new_integerdefault ffebld_constant_new_integer1
816 #define ffebld_constant_new_integerdefault_val ffebld_constant_new_integer1_val
817 #define ffebld_constant_new_logicaldefault ffebld_constant_new_logical1
818 #define ffebld_constant_new_logicaldefault_val ffebld_constant_new_logical1_val
819 #define ffebld_constant_new_realdefault ffebld_constant_new_real1
820 #define ffebld_constant_new_realdefault_val ffebld_constant_new_real1_val
821 #define ffebld_constant_new_realdouble ffebld_constant_new_real2
822 #define ffebld_constant_new_realdouble_val ffebld_constant_new_real2_val
823 #define ffebld_constant_new_realquad ffebld_constant_new_real3
824 #define ffebld_constant_new_realquad_val ffebld_constant_new_real3_val
825 #define ffebld_constant_ptr_to_union(c) (&(c)->u)
826 #define ffebld_constant_real1(c) ((c)->u.real1)
827 #define ffebld_constant_real2(c) ((c)->u.real2)
828 #define ffebld_constant_real3(c) ((c)->u.real3)
829 #define ffebld_constant_real4(c) ((c)->u.real4)
830 #define ffebld_constant_real5(c) ((c)->u.real5)
831 #define ffebld_constant_real6(c) ((c)->u.real6)
832 #define ffebld_constant_real7(c) ((c)->u.real7)
833 #define ffebld_constant_real8(c) ((c)->u.real8)
834 #define ffebld_constant_realdefault ffebld_constant_real1
835 #define ffebld_constant_realdouble ffebld_constant_real2
836 #define ffebld_constant_realquad ffebld_constant_real3
837 #define ffebld_constant_set_hook(c,h) ((c)->hook = (h))
838 #define ffebld_constant_set_union(c,un) ((c)->u = (un))
839 #define ffebld_constant_type(c) ((c)->consttype)
840 #define ffebld_constant_typeless(c) ((c)->u.typeless)
841 #define ffebld_constant_union(c) ((c)->u)
842 #define ffebld_conter(b) ((b)->u.conter.expr)
843 #define ffebld_conter_orig(b) ((b)->u.conter.orig)
844 #define ffebld_conter_pad(b) ((b)->u.conter.pad)
845 #define ffebld_conter_set_orig(b,o) ((b)->u.conter.orig = (o))
846 #define ffebld_conter_set_pad(b,p) ((b)->u.conter.pad = (p))
847 #define ffebld_copy(b) (b) /* ~~~Someday really make a copy. */
848 #define ffebld_cu_ptr_typeless(u) &(u).typeless
849 #define ffebld_cu_ptr_hollerith(u) &(u).hollerith
850 #define ffebld_cu_ptr_integer1(u) &(u).integer1
851 #define ffebld_cu_ptr_integer2(u) &(u).integer2
852 #define ffebld_cu_ptr_integer3(u) &(u).integer3
853 #define ffebld_cu_ptr_integer4(u) &(u).integer4
854 #define ffebld_cu_ptr_integer5(u) &(u).integer5
855 #define ffebld_cu_ptr_integer6(u) &(u).integer6
856 #define ffebld_cu_ptr_integer7(u) &(u).integer7
857 #define ffebld_cu_ptr_integer8(u) &(u).integer8
858 #define ffebld_cu_ptr_integerdefault ffebld_cu_ptr_integer1
859 #define ffebld_cu_ptr_logical1(u) &(u).logical1
860 #define ffebld_cu_ptr_logical2(u) &(u).logical2
861 #define ffebld_cu_ptr_logical3(u) &(u).logical3
862 #define ffebld_cu_ptr_logical4(u) &(u).logical4
863 #define ffebld_cu_ptr_logical5(u) &(u).logical5
864 #define ffebld_cu_ptr_logical6(u) &(u).logical6
865 #define ffebld_cu_ptr_logical7(u) &(u).logical7
866 #define ffebld_cu_ptr_logical8(u) &(u).logical8
867 #define ffebld_cu_ptr_logicaldefault ffebld_cu_ptr_logical1
868 #define ffebld_cu_ptr_real1(u) &(u).real1
869 #define ffebld_cu_ptr_real2(u) &(u).real2
870 #define ffebld_cu_ptr_real3(u) &(u).real3
871 #define ffebld_cu_ptr_real4(u) &(u).real4
872 #define ffebld_cu_ptr_real5(u) &(u).real5
873 #define ffebld_cu_ptr_real6(u) &(u).real6
874 #define ffebld_cu_ptr_real7(u) &(u).real7
875 #define ffebld_cu_ptr_real8(u) &(u).real8
876 #define ffebld_cu_ptr_realdefault ffebld_cu_ptr_real1
877 #define ffebld_cu_ptr_realdouble ffebld_cu_ptr_real2
878 #define ffebld_cu_ptr_realquad ffebld_cu_ptr_real3
879 #define ffebld_cu_ptr_complex1(u) &(u).complex1
880 #define ffebld_cu_ptr_complex2(u) &(u).complex2
881 #define ffebld_cu_ptr_complex3(u) &(u).complex3
882 #define ffebld_cu_ptr_complex4(u) &(u).complex4
883 #define ffebld_cu_ptr_complex5(u) &(u).complex5
884 #define ffebld_cu_ptr_complex6(u) &(u).complex6
885 #define ffebld_cu_ptr_complex7(u) &(u).complex7
886 #define ffebld_cu_ptr_complex8(u) &(u).complex8
887 #define ffebld_cu_ptr_complexdefault ffebld_cu_ptr_complex1
888 #define ffebld_cu_ptr_complexdouble ffebld_cu_ptr_complex2
889 #define ffebld_cu_ptr_complexquad ffebld_cu_ptr_complex3
890 #define ffebld_cu_ptr_character1(u) &(u).character1
891 #define ffebld_cu_ptr_character2(u) &(u).character2
892 #define ffebld_cu_ptr_character3(u) &(u).character3
893 #define ffebld_cu_ptr_character4(u) &(u).character4
894 #define ffebld_cu_ptr_character5(u) &(u).character5
895 #define ffebld_cu_ptr_character6(u) &(u).character6
896 #define ffebld_cu_ptr_character7(u) &(u).character7
897 #define ffebld_cu_ptr_character8(u) &(u).character8
898 #define ffebld_cu_val_typeless(u) (u).typeless
899 #define ffebld_cu_val_hollerith(u) (u).hollerith
900 #define ffebld_cu_val_integer1(u) (u).integer1
901 #define ffebld_cu_val_integer2(u) (u).integer2
902 #define ffebld_cu_val_integer3(u) (u).integer3
903 #define ffebld_cu_val_integer4(u) (u).integer4
904 #define ffebld_cu_val_integer5(u) (u).integer5
905 #define ffebld_cu_val_integer6(u) (u).integer6
906 #define ffebld_cu_val_integer7(u) (u).integer7
907 #define ffebld_cu_val_integer8(u) (u).integer8
908 #define ffebld_cu_val_integerdefault ffebld_cu_val_integer1
909 #define ffebld_cu_val_logical1(u) (u).logical1
910 #define ffebld_cu_val_logical2(u) (u).logical2
911 #define ffebld_cu_val_logical3(u) (u).logical3
912 #define ffebld_cu_val_logical4(u) (u).logical4
913 #define ffebld_cu_val_logical5(u) (u).logical5
914 #define ffebld_cu_val_logical6(u) (u).logical6
915 #define ffebld_cu_val_logical7(u) (u).logical7
916 #define ffebld_cu_val_logical8(u) (u).logical8
917 #define ffebld_cu_val_logicaldefault ffebld_cu_val_logical
918 #define ffebld_cu_val_real1(u) (u).real1
919 #define ffebld_cu_val_real2(u) (u).real2
920 #define ffebld_cu_val_real3(u) (u).real3
921 #define ffebld_cu_val_real4(u) (u).real4
922 #define ffebld_cu_val_real5(u) (u).real5
923 #define ffebld_cu_val_real6(u) (u).real6
924 #define ffebld_cu_val_real7(u) (u).real7
925 #define ffebld_cu_val_real8(u) (u).real8
926 #define ffebld_cu_val_realdefault ffebld_cu_val_real1
927 #define ffebld_cu_val_realdouble ffebld_cu_val_real2
928 #define ffebld_cu_val_realquad ffebld_cu_val_real3
929 #define ffebld_cu_val_complex1(u) (u).complex1
930 #define ffebld_cu_val_complex2(u) (u).complex2
931 #define ffebld_cu_val_complex3(u) (u).complex3
932 #define ffebld_cu_val_complex4(u) (u).complex4
933 #define ffebld_cu_val_complex5(u) (u).complex5
934 #define ffebld_cu_val_complex6(u) (u).complex6
935 #define ffebld_cu_val_complex7(u) (u).complex7
936 #define ffebld_cu_val_complex8(u) (u).complex8
937 #define ffebld_cu_val_complexdefault ffebld_cu_val_complex1
938 #define ffebld_cu_val_complexdouble ffebld_cu_val_complex2
939 #define ffebld_cu_val_complexquad ffebld_cu_val_complex3
940 #define ffebld_cu_val_character1(u) (u).character1
941 #define ffebld_cu_val_character2(u) (u).character2
942 #define ffebld_cu_val_character3(u) (u).character3
943 #define ffebld_cu_val_character4(u) (u).character4
944 #define ffebld_cu_val_character5(u) (u).character5
945 #define ffebld_cu_val_character6(u) (u).character6
946 #define ffebld_cu_val_character7(u) (u).character7
947 #define ffebld_cu_val_character8(u) (u).character8
948 #define ffebld_end_list(b) (*(b) = NULL)
949 #define ffebld_head(b) ((b)->u.item.head)
950 #define ffebld_info(b) ((b)->info)
951 #define ffebld_init_3()
952 #define ffebld_init_4()
953 #define ffebld_init_list(l,b) (*(l) = NULL, *(b) = (l))
954 #define ffebld_item_hook(b) ((b)->u.item.hook)
955 #define ffebld_item_set_hook(b,h) ((b)->u.item.hook = (h))
956 #define ffebld_kind(b) (ffeinfo_kind (ffebld_info ((b))))
957 #define ffebld_kindtype(b) (ffeinfo_kindtype (ffebld_info ((b))))
958 #define ffebld_labter(b) ((b)->u.labter)
959 #define ffebld_labtok(b) ((b)->u.labtok)
960 #define ffebld_left(b) ((b)->u.nonter.left)
961 #define ffebld_name_string(n) ((n)->name)
962 #define ffebld_new() \
963 ((ffebld) malloc_new_kp(ffebld_pool(), "FFEBLD",sizeof(struct _ffebld_)))
964 #define ffebld_new_any() ffebld_new_none(FFEBLD_opANY)
965 #define ffebld_new_conter(c) ffebld_new_conter_with_orig((c),NULL)
966 #define ffebld_new_star() ffebld_new_none(FFEBLD_opSTAR)
967 #define ffebld_new_uplus(l) ffebld_new_one(FFEBLD_opUPLUS,(l))
968 #define ffebld_new_uminus(l) ffebld_new_one(FFEBLD_opUMINUS,(l))
969 #define ffebld_new_add(l,r) ffebld_new_two(FFEBLD_opADD,(l),(r))
970 #define ffebld_new_subtract(l,r) ffebld_new_two(FFEBLD_opSUBTRACT,(l),(r))
971 #define ffebld_new_multiply(l,r) ffebld_new_two(FFEBLD_opMULTIPLY,(l),(r))
972 #define ffebld_new_divide(l,r) ffebld_new_two(FFEBLD_opDIVIDE,(l),(r))
973 #define ffebld_new_power(l,r) ffebld_new_two(FFEBLD_opPOWER,(l),(r))
974 #define ffebld_new_bounds(l,r) ffebld_new_two(FFEBLD_opBOUNDS,(l),(r))
975 #define ffebld_new_concatenate(l,r) ffebld_new_two(FFEBLD_opCONCATENATE,(l),(r))
976 #define ffebld_new_not(l) ffebld_new_one(FFEBLD_opNOT,(l))
977 #define ffebld_new_lt(l,r) ffebld_new_two(FFEBLD_opLT,(l),(r))
978 #define ffebld_new_le(l,r) ffebld_new_two(FFEBLD_opLE,(l),(r))
979 #define ffebld_new_eq(l,r) ffebld_new_two(FFEBLD_opEQ,(l),(r))
980 #define ffebld_new_ne(l,r) ffebld_new_two(FFEBLD_opNE,(l),(r))
981 #define ffebld_new_gt(l,r) ffebld_new_two(FFEBLD_opGT,(l),(r))
982 #define ffebld_new_ge(l,r) ffebld_new_two(FFEBLD_opGE,(l),(r))
983 #define ffebld_new_and(l,r) ffebld_new_two(FFEBLD_opAND,(l),(r))
984 #define ffebld_new_or(l,r) ffebld_new_two(FFEBLD_opOR,(l),(r))
985 #define ffebld_new_xor(l,r) ffebld_new_two(FFEBLD_opXOR,(l),(r))
986 #define ffebld_new_eqv(l,r) ffebld_new_two(FFEBLD_opEQV,(l),(r))
987 #define ffebld_new_neqv(l,r) ffebld_new_two(FFEBLD_opNEQV,(l),(r))
988 #define ffebld_new_paren(l) ffebld_new_one(FFEBLD_opPAREN,(l))
989 #define ffebld_new_repeat(l,r) ffebld_new_two(FFEBLD_opREPEAT,(l),(r))
990 #define ffebld_new_percent_descr(l) ffebld_new_one(FFEBLD_opPERCENT_DESCR,(l))
991 #define ffebld_new_percent_loc(l) ffebld_new_one(FFEBLD_opPERCENT_LOC,(l))
992 #define ffebld_new_percent_ref(l) ffebld_new_one(FFEBLD_opPERCENT_REF,(l))
993 #define ffebld_new_percent_val(l) ffebld_new_one(FFEBLD_opPERCENT_VAL,(l))
994 #define ffebld_new_complex(l,r) ffebld_new_two(FFEBLD_opCOMPLEX,(l),(r))
995 #define ffebld_new_convert(l) ffebld_new_one(FFEBLD_opCONVERT,(l))
996 #define ffebld_new_funcref(l,r) ffebld_new_two(FFEBLD_opFUNCREF,(l),(r))
997 #define ffebld_new_subrref(l,r) ffebld_new_two(FFEBLD_opSUBRREF,(l),(r))
998 #define ffebld_new_arrayref(l,r) ffebld_new_two(FFEBLD_opARRAYREF,(l),(r))
999 #define ffebld_new_substr(l,r) ffebld_new_two(FFEBLD_opSUBSTR,(l),(r))
1000 #define ffebld_new_impdo(l,r) ffebld_new_two(FFEBLD_opIMPDO,(l),(r))
1001 #define ffebld_nonter_hook(b) ((b)->u.nonter.hook)
1002 #define ffebld_nonter_set_hook(b,h) ((b)->u.nonter.hook = (h))
1003 #define ffebld_op(b) ((b)->op)
1004 #define ffebld_pool() (ffebld_pool_stack_.pool)
1005 #define ffebld_rank(b) (ffeinfo_rank (ffebld_info ((b))))
1006 #define ffebld_right(b) ((b)->u.nonter.right)
1007 #define ffebld_set_accter(b,a) ((b)->u.accter.array = (a))
1008 #define ffebld_set_arrter(b,a) ((b)->u.arrter.array = (a))
1009 #define ffebld_set_conter(b,c) ((b)->u.conter.expr = (c))
1010 #define ffebld_set_info(b,i) ((b)->info = (i))
1011 #define ffebld_set_labter(b,l) ((b)->u.labter = (l))
1012 #define ffebld_set_op(b,o) ((b)->op = (o))
1013 #define ffebld_set_head(b,h) ((b)->u.item.head = (h))
1014 #define ffebld_set_left(b,l) ((b)->u.nonter.left = (l))
1015 #define ffebld_set_right(b,r) ((b)->u.nonter.right = (r))
1016 #define ffebld_set_trail(b,t) ((b)->u.item.trail = (t))
1017 #define ffebld_size(b) (ffeinfo_size (ffebld_info ((b))))
1018 #define ffebld_size_known(b) ffebld_size((b))
1019 #define ffebld_symter(b) ((b)->u.symter.symbol)
1020 #define ffebld_symter_generic(b) ((b)->u.symter.generic)
1021 #define ffebld_symter_doiter(b) ((b)->u.symter.do_iter)
1022 #define ffebld_symter_implementation(b) ((b)->u.symter.implementation)
1023 #define ffebld_symter_specific(b) ((b)->u.symter.specific)
1024 #define ffebld_symter_set_generic(b,g) ((b)->u.symter.generic = (g))
1025 #define ffebld_symter_set_implementation(b,i) \
1026 ((b)->u.symter.implementation = (i))
1027 #define ffebld_symter_set_is_doiter(b,f) ((b)->u.symter.do_iter = (f))
1028 #define ffebld_symter_set_specific(b,s) ((b)->u.symter.specific = (s))
1029 #define ffebld_terminate_0()
1030 #define ffebld_terminate_1()
1031 #define ffebld_terminate_2()
1032 #define ffebld_terminate_3()
1033 #define ffebld_terminate_4()
1034 #define ffebld_trail(b) ((b)->u.item.trail)
1035 #define ffebld_where(b) (ffeinfo_where (ffebld_info ((b))))
1037 /* End of #include file. */