#include "command.h"
#include "language.h"
#include "parser-defs.h"
-
+\f
+/* Global variables declared in parser-defs.h (and commented there). */
+struct expression *expout;
+int expout_size;
+int expout_ptr;
+struct block *expression_context_block;
+struct block *innermost_block;
+struct block *block_found;
+int arglist_len;
+union type_stack_elt *type_stack;
+int type_stack_depth, type_stack_size;
+char *lexptr;
+char *namecopy;
+int paren_depth;
+int comma_terminates;
+\f
static void
free_funcalls PARAMS ((void));
extern struct std_regs std_regs[];
extern unsigned num_std_regs;
-struct expression *expout;
-int expout_size;
-int expout_ptr;
+extern struct expression *expout;
+extern int expout_size;
+extern int expout_ptr;
/* If this is nonzero, this block is used as the lexical context
for symbol names. */
-struct block *expression_context_block;
+extern struct block *expression_context_block;
/* The innermost context required by the stack and register variables
we've encountered so far. */
-struct block *innermost_block;
+extern struct block *innermost_block;
/* The block in which the most recently discovered symbol was found. */
-struct block *block_found;
+extern struct block *block_found;
/* Number of arguments seen so far in innermost function call. */
-int arglist_len;
+extern int arglist_len;
/* A string token, either a char-string or bit-string. Char-strings are
used, for example, for the names of symbols. */
enum type_pieces piece;
int int_val;
};
-union type_stack_elt *type_stack;
-int type_stack_depth, type_stack_size;
+extern union type_stack_elt *type_stack;
+extern int type_stack_depth, type_stack_size;
extern void write_exp_elt PARAMS ((union exp_element));
/* During parsing of a C expression, the pointer to the next character
is in this variable. */
-char *lexptr;
+extern char *lexptr;
/* Tokens that refer to names do so with explicit pointer and length,
so they can share the storage that lexptr is parsing.
namecopy is allocated once, guaranteed big enough, for each parsing. */
-char *namecopy;
+extern char *namecopy;
/* Current depth in parentheses within the expression. */
-int paren_depth;
+extern int paren_depth;
/* Nonzero means stop parsing on first comma (if not within parentheses). */
-int comma_terminates;
+extern int comma_terminates;
\f
/* These codes indicate operator precedences for expression printing,
least tightly binding first. */