Subversion Repositories tendra.SVN

Rev

Rev 2 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2 Rev 7
Line -... Line 1...
-
 
1
/*
-
 
2
 * Copyright (c) 2002-2005 The TenDRA Project <http://www.tendra.org/>.
-
 
3
 * All rights reserved.
-
 
4
 *
-
 
5
 * Redistribution and use in source and binary forms, with or without
-
 
6
 * modification, are permitted provided that the following conditions are met:
-
 
7
 *
-
 
8
 * 1. Redistributions of source code must retain the above copyright notice,
-
 
9
 *    this list of conditions and the following disclaimer.
-
 
10
 * 2. Redistributions in binary form must reproduce the above copyright notice,
-
 
11
 *    this list of conditions and the following disclaimer in the documentation
-
 
12
 *    and/or other materials provided with the distribution.
-
 
13
 * 3. Neither the name of The TenDRA Project nor the names of its contributors
-
 
14
 *    may be used to endorse or promote products derived from this software
-
 
15
 *    without specific, prior written permission.
-
 
16
 *
-
 
17
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
-
 
18
 * IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
-
 
19
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-
 
20
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR
-
 
21
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-
 
22
 * EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-
 
23
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-
 
24
 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-
 
25
 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-
 
26
 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-
 
27
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
 
28
 *
-
 
29
 * $Id$
-
 
30
 */
1
/*
31
/*
2
    		 Crown Copyright (c) 1997
32
    		 Crown Copyright (c) 1997
3
    
33
 
4
    This TenDRA(r) Computer Program is subject to Copyright
34
    This TenDRA(r) Computer Program is subject to Copyright
5
    owned by the United Kingdom Secretary of State for Defence
35
    owned by the United Kingdom Secretary of State for Defence
6
    acting through the Defence Evaluation and Research Agency
36
    acting through the Defence Evaluation and Research Agency
7
    (DERA).  It is made available to Recipients with a
37
    (DERA).  It is made available to Recipients with a
8
    royalty-free licence for its use, reproduction, transfer
38
    royalty-free licence for its use, reproduction, transfer
9
    to other parties and amendment for any purpose not excluding
39
    to other parties and amendment for any purpose not excluding
10
    product development provided that any such use et cetera
40
    product development provided that any such use et cetera
11
    shall be deemed to be acceptance of the following conditions:-
41
    shall be deemed to be acceptance of the following conditions:-
12
    
42
 
13
        (1) Its Recipients shall ensure that this Notice is
43
        (1) Its Recipients shall ensure that this Notice is
14
        reproduced upon any copies or amended versions of it;
44
        reproduced upon any copies or amended versions of it;
15
    
45
 
16
        (2) Any amended version of it shall be clearly marked to
46
        (2) Any amended version of it shall be clearly marked to
17
        show both the nature of and the organisation responsible
47
        show both the nature of and the organisation responsible
18
        for the relevant amendment or amendments;
48
        for the relevant amendment or amendments;
19
    
49
 
20
        (3) Its onward transfer from a recipient to another
50
        (3) Its onward transfer from a recipient to another
21
        party shall be deemed to be that party's acceptance of
51
        party shall be deemed to be that party's acceptance of
22
        these conditions;
52
        these conditions;
23
    
53
 
24
        (4) DERA gives no warranty or assurance as to its
54
        (4) DERA gives no warranty or assurance as to its
25
        quality or suitability for any purpose and DERA accepts
55
        quality or suitability for any purpose and DERA accepts
26
        no liability whatsoever in relation to any use to which
56
        no liability whatsoever in relation to any use to which
27
        it may be put.
57
        it may be put.
28
*/
58
*/
Line 109... Line 139...
109
    TypeTupleT			result;
139
    TypeTupleT			result;
110
} CCodeT, *CCodeP;
140
} CCodeT, *CCodeP;
111
 
141
 
112
/*--------------------------------------------------------------------------*/
142
/*--------------------------------------------------------------------------*/
113
 
143
 
114
extern CCodeP			c_code_create
144
extern CCodeP		c_code_create(CStringP, unsigned);
115
	PROTO_S ((CStringP, unsigned));
-
 
116
extern void			c_code_append_string
145
extern void		c_code_append_string(CCodeP, NStringP);
117
	PROTO_S ((CCodeP, NStringP));
-
 
118
extern void			c_code_append_label
146
extern void		c_code_append_label(CCodeP, NStringP);
119
	PROTO_S ((CCodeP, NStringP));
-
 
120
extern void			c_code_append_identifier
147
extern void		c_code_append_identifier(CCodeP, NStringP);
121
	PROTO_S ((CCodeP, NStringP));
-
 
122
extern void			c_code_append_modifiable
148
extern void		c_code_append_modifiable(CCodeP, NStringP);
123
	PROTO_S ((CCodeP, NStringP));
-
 
124
extern void			c_code_append_reference
149
extern void		c_code_append_reference(CCodeP, NStringP);
125
	PROTO_S ((CCodeP, NStringP));
-
 
126
extern void			c_code_append_exception
150
extern void		c_code_append_exception(CCodeP);
127
	PROTO_S ((CCodeP));
-
 
128
extern void			c_code_append_advance
151
extern void		c_code_append_advance(CCodeP);
129
	PROTO_S ((CCodeP));
-
 
130
extern void			c_code_append_terminal
152
extern void		c_code_append_terminal(CCodeP);
131
	PROTO_S ((CCodeP));
-
 
132
extern void			c_code_check
153
extern void		c_code_check(CCodeP, BoolT, BoolT, TypeTupleP,
133
	PROTO_S ((CCodeP, BoolT, BoolT, TypeTupleP, TypeTupleP, TableP));
154
				     TypeTupleP, TableP);
134
extern CStringP			c_code_file
155
extern CStringP		c_code_file(CCodeP);
135
	PROTO_S ((CCodeP));
-
 
136
extern unsigned			c_code_line
156
extern unsigned		c_code_line(CCodeP);
137
	PROTO_S ((CCodeP));
-
 
138
extern TypeTupleP		c_code_param
157
extern TypeTupleP	c_code_param(CCodeP);
139
	PROTO_S ((CCodeP));
-
 
140
extern TypeTupleP		c_code_result
158
extern TypeTupleP	c_code_result(CCodeP);
141
	PROTO_S ((CCodeP));
-
 
142
extern void			c_code_deallocate
159
extern void		c_code_deallocate(CCodeP);
143
	PROTO_S ((CCodeP));
-
 
144
 
160
 
145
extern void			c_output_c_code_action
161
extern void		c_output_c_code_action(COutputInfoP, CCodeP,
146
	PROTO_S ((COutputInfoP, CCodeP, TypeTupleP, TypeTupleP, SaveRStackP,
162
					       TypeTupleP, TypeTupleP,
147
		  RuleP));
163
					       SaveRStackP, RuleP);
148
extern void			c_output_c_code_basic
164
extern void		c_output_c_code_basic(COutputInfoP, CCodeP, TypeTupleP,
149
	PROTO_S ((COutputInfoP, CCodeP, TypeTupleP, SaveRStackP));
165
					      SaveRStackP);
150
extern void			c_output_c_code_assign
166
extern void		c_output_c_code_assign(COutputInfoP, CCodeP, EntryP,
151
	PROTO_S ((COutputInfoP, CCodeP, EntryP, EntryP, EntryP, BoolT, BoolT));
167
					       EntryP, EntryP, BoolT, BoolT);
152
extern void			c_output_c_code_param_assign
168
extern void		c_output_c_code_param_assign(COutputInfoP, CCodeP,
153
	PROTO_S ((COutputInfoP, CCodeP, EntryP, EntryP));
169
						     EntryP, EntryP);
154
extern void			c_output_c_code_result_assign
170
extern void		c_output_c_code_result_assign(COutputInfoP, CCodeP,
155
	PROTO_S ((COutputInfoP, CCodeP, EntryP, EntryP));
171
						      EntryP, EntryP);
156
extern void			c_output_c_code
172
extern void		c_output_c_code(COutputInfoP, CCodeP);
157
	PROTO_S ((COutputInfoP, CCodeP));
-
 
158
 
173
 
159
/*--------------------------------------------------------------------------*/
174
/*--------------------------------------------------------------------------*/
160
 
175
 
161
#ifdef FS_FAST
176
#ifdef FS_FAST
162
#define c_code_file(c) ((c)->file)
177
#define c_code_file(c)	((c)->file)
163
#define c_code_line(c) ((c)->line)
178
#define c_code_line(c)	((c)->line)
164
#endif /* defined (FS_FAST) */
179
#endif /* defined (FS_FAST) */
165
 
180
 
166
#endif /* !defined (H_C_CODE) */
181
#endif /* !defined (H_C_CODE) */
167

182

168
/*
183
/*