1
  
2
  
3
  
4
  
5
  
6
  
7
  
8
  
9
  
10
  
11
  
12
  
13
  
14
  
15
  
16
  
17
  
18
  
19
  
20
  
21
  
22
  
23
  
24
  
25
  
26
  
27
  
28
  
29
  
30
  
31
  
32
  
33
  
34
  
35
  
/* 
|| This file is part of Pike. For copyright information see COPYRIGHT. 
|| Pike is distributed under GPL, LGPL and MPL. See the file COPYING 
|| for more information. 
*/ 
 
/* Who needs templates anyway? / Hubbe */ 
 
#ifndef BAR 
#define BAR(NUMTYPE, TYPE, ARGTYPE, NAME) FOO(NUMTYPE, TYPE, ARGTYPE, NAME) 
#endif /* !BAR */ 
#ifndef PASS1ONLY 
#define PASS1ONLY(NUMTYPE, TYPE, ARGTYPE, NAME) FOO(NUMTYPE, TYPE, ARGTYPE, NAME) 
#endif /* !PASS1ONLY */ 
 
/* Program *must* be first! */ 
BAR(size_t,PIKE_OPCODE_T, PIKE_OPCODE_T, program) 
FOO(size_t,size_t, size_t, relocations) 
FOO(size_t,char, int, linenumbers) 
FOO(unsigned INT16,unsigned INT16, unsigned, identifier_index) 
FOO(unsigned INT16,unsigned INT16, unsigned, variable_index) 
FOO(unsigned INT16,struct pike_string *, struct pike_string *, strings) 
FOO(unsigned INT16,struct program_constant, struct program_constant, constants) 
PASS1ONLY(unsigned INT16,struct reference, struct reference, identifier_references) 
PASS1ONLY(unsigned INT16,struct inherit, struct inherit, inherits) 
PASS1ONLY(unsigned INT16,struct identifier, struct identifier, identifiers) 
/* NB: Annotations for the program itself are at index #0. 
 *     Annotations for identifiers are thus offset by 1. 
 */ 
PASS1ONLY(unsigned INT16, struct array *, struct array *, annotations) 
#undef PASS1ONLY 
#undef FOO 
#undef BAR