Merge from vendor branch DIFFUTILS:
[dragonfly.git] / contrib / bc / bc / proto.h
1 /* proto.h: Prototype function definitions for "external" functions. */
2
3 /*  This file is part of GNU bc.
4     Copyright (C) 1991-1994, 1997, 2000 Free Software Foundation, Inc.
5
6     This program is free software; you can redistribute it and/or modify
7     it under the terms of the GNU General Public License as published by
8     the Free Software Foundation; either version 2 of the License , or
9     (at your option) any later version.
10
11     This program is distributed in the hope that it will be useful,
12     but WITHOUT ANY WARRANTY; without even the implied warranty of
13     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14     GNU General Public License for more details.
15
16     You should have received a copy of the GNU General Public License
17     along with this program; see the file COPYING.  If not, write to
18       The Free Software Foundation, Inc.
19       59 Temple Place, Suite 330
20       Boston, MA 02111 USA
21
22     You may contact the author by:
23        e-mail:  philnelson@acm.org
24       us-mail:  Philip A. Nelson
25                 Computer Science Department, 9062
26                 Western Washington University
27                 Bellingham, WA 98226-9062
28        
29 *************************************************************************/
30
31 /* For the pc version using k&r ACK. (minix1.5 and earlier.) */
32 #ifdef SHORTNAMES
33 #define init_numbers i_numbers
34 #define push_constant push__constant
35 #define load_const in_load_const
36 #define yy_get_next_buffer yyget_next_buffer
37 #define yy_init_buffer yyinit_buffer
38 #define yy_last_accepting_state yylast_accepting_state
39 #define arglist1 arg1list
40 #endif
41
42 /* Include the standard library header files. */
43 #ifdef HAVE_UNISTD_H
44 #include <unistd.h>
45 #endif
46 #ifdef HAVE_STDLIB_H
47 #include <stdlib.h>
48 #endif
49
50 /* Define the _PROTOTYPE macro if it is needed. */
51
52 #ifndef _PROTOTYPE
53 #ifdef __STDC__
54 #define _PROTOTYPE(func, args) func args
55 #else
56 #define _PROTOTYPE(func, args) func()
57 #endif
58 #endif
59
60 /* From execute.c */
61 _PROTOTYPE(void stop_execution, (int));
62 _PROTOTYPE(unsigned char byte, (program_counter *pc));
63 _PROTOTYPE(void execute, (void));
64 _PROTOTYPE(char prog_char, (void));
65 _PROTOTYPE(char input_char, (void));
66 _PROTOTYPE(void push_constant, (char (*in_char)(void), int conv_base));
67 _PROTOTYPE(void push_b10_const, (program_counter *pc));
68 _PROTOTYPE(void assign, (int c_code));
69
70 /* From util.c */
71 _PROTOTYPE(char *strcopyof, (char *str));
72 _PROTOTYPE(arg_list *nextarg, (arg_list *args, int val, int is_var));
73 _PROTOTYPE(char *arg_str, (arg_list *args));
74 _PROTOTYPE(char *call_str, (arg_list *args));
75 _PROTOTYPE(void free_args, (arg_list *args));
76 _PROTOTYPE(void check_params, (arg_list *params, arg_list *autos));
77 _PROTOTYPE(void init_gen, (void));
78 _PROTOTYPE(void generate, (char *str));
79 _PROTOTYPE(void run_code, (void));
80 _PROTOTYPE(void out_char, (int ch));
81 _PROTOTYPE(void out_schar, (int ch));
82 _PROTOTYPE(id_rec *find_id, (id_rec *tree, char *id));
83 _PROTOTYPE(int insert_id_rec, (id_rec **root, id_rec *new_id));
84 _PROTOTYPE(void init_tree, (void));
85 _PROTOTYPE(int lookup, (char *name, int namekind));
86 _PROTOTYPE(char *bc_malloc, (int));
87 _PROTOTYPE(void out_of_memory, (void));
88 _PROTOTYPE(void welcome, (void));
89 _PROTOTYPE(void warranty, (char *));
90 _PROTOTYPE(void show_bc_version, (void));
91 _PROTOTYPE(void limits, (void));
92 _PROTOTYPE(void yyerror, (char *str ,...));
93 _PROTOTYPE(void warn, (char *mesg ,...));
94 _PROTOTYPE(void rt_error, (char *mesg ,...));
95 _PROTOTYPE(void rt_warn, (char *mesg ,...));
96
97 /* From load.c */
98 _PROTOTYPE(void init_load, (void));
99 _PROTOTYPE(void addbyte, (int byte));
100 _PROTOTYPE(void def_label, (long lab));
101 _PROTOTYPE(long long_val, (char **str));
102 _PROTOTYPE(void load_code, (char *code));
103
104 /* From main.c */
105 _PROTOTYPE(int open_new_file, (void));
106 _PROTOTYPE(void new_yy_file, (FILE *file));
107 _PROTOTYPE(void use_quit, (int));
108
109 /* From storage.c */
110 _PROTOTYPE(void init_storage, (void));
111 _PROTOTYPE(void more_functions, (void));
112 _PROTOTYPE(void more_variables, (void));
113 _PROTOTYPE(void more_arrays, (void));
114 _PROTOTYPE(void clear_func, (int func ));
115 _PROTOTYPE(int fpop, (void));
116 _PROTOTYPE(void fpush, (int val ));
117 _PROTOTYPE(void pop, (void));
118 _PROTOTYPE(void push_copy, (bc_num num ));
119 _PROTOTYPE(void push_num, (bc_num num ));
120 _PROTOTYPE(char check_stack, (int depth ));
121 _PROTOTYPE(bc_var *get_var, (int var_name ));
122 _PROTOTYPE(bc_num *get_array_num, (int var_index, long index ));
123 _PROTOTYPE(void store_var, (int var_name ));
124 _PROTOTYPE(void store_array, (int var_name ));
125 _PROTOTYPE(void load_var, (int var_name ));
126 _PROTOTYPE(void load_array, (int var_name ));
127 _PROTOTYPE(void decr_var, (int var_name ));
128 _PROTOTYPE(void decr_array, (int var_name ));
129 _PROTOTYPE(void incr_var, (int var_name ));
130 _PROTOTYPE(void incr_array, (int var_name ));
131 _PROTOTYPE(void auto_var, (int name ));
132 _PROTOTYPE(void free_a_tree, (bc_array_node *root, int depth ));
133 _PROTOTYPE(void pop_vars, (arg_list *list ));
134 _PROTOTYPE(void process_params, (program_counter *pc, int func ));
135
136 /* For the scanner and parser.... */
137 _PROTOTYPE(int yyparse, (void));
138 _PROTOTYPE(int yylex, (void)); 
139
140 #if defined(LIBEDIT)
141 /* The *?*&^ prompt function */
142 _PROTOTYPE(char *null_prompt, (EditLine *));
143 #endif
144
145 /* Other things... */
146 #ifndef HAVE_UNISTD_H
147 _PROTOTYPE (int getopt, (int, char *[], CONST char *));
148 #endif