extern const char *ada_decode_symbol (const struct general_symbol_info *);
-extern std::string ada_decode (const char*);
+/* Decode the GNAT-encoded name NAME, returning the decoded name. If
+ the name does not appear to be GNAT-encoded, then the result
+ depends on WRAP. If WRAP is true (the default), then the result is
+ simply wrapped in <...>. If WRAP is false, then the empty string
+ will be returned. */
+extern std::string ada_decode (const char *name, bool wrap = true);
extern std::vector<struct block_symbol> ada_lookup_symbol_list
(const char *, const struct block *, domain_enum);
const char *taskno_str,
struct inferior *inf);
+/* Look for a symbol for an overloaded operator for the operation OP.
+ PARSE_COMPLETION is true if currently parsing for completion.
+ NARGS and ARGVEC describe the arguments to the call. Returns a
+ "null" block_symbol if no such operator is found. */
+
+extern block_symbol ada_find_operator_symbol (enum exp_opcode op,
+ bool parse_completion,
+ int nargs, value *argvec[]);
+
+/* Resolve a function call, selecting among possible function symbols.
+ SYM and BLOCK are passed to ada_lookup_symbol_list. CONTEXT_TYPE
+ describes the calling context. PARSE_COMPLETION is true if
+ currently parsing for completion. NARGS and ARGVEC describe the
+ arguments to the call. This returns the chosen symbol and will
+ update TRACKER accordingly. */
+
+extern block_symbol ada_resolve_funcall (struct symbol *sym,
+ const struct block *block,
+ struct type *context_type,
+ bool parse_completion,
+ int nargs, value *argvec[],
+ innermost_block_tracker *tracker);
+
+/* Resolve a symbol reference, selecting among possible values. SYM
+ and BLOCK are passed to ada_lookup_symbol_list. CONTEXT_TYPE
+ describes the calling context. PARSE_COMPLETION is true if
+ currently parsing for completion. If DEPROCEDURE_P is nonzero,
+ then a symbol that names a zero-argument function will be passed
+ through ada_resolve_function. This returns the chosen symbol and
+ will update TRACKER accordingly. */
+
+extern block_symbol ada_resolve_variable (struct symbol *sym,
+ const struct block *block,
+ struct type *context_type,
+ bool parse_completion,
+ int deprocedure_p,
+ innermost_block_tracker *tracker);
+
+/* The type of nth index in arrays of given type (n numbering from 1).
+ Does not examine memory. Throws an error if N is invalid or TYPE
+ is not an array type. NAME is the name of the Ada attribute being
+ evaluated ('range, 'first, 'last, or 'length); it is used in building
+ the error message. */
+extern struct type *ada_index_type (struct type *type, int n,
+ const char *name);
+
#endif