fixes for scoping
[official-gcc.git] / gcc / python / pypy-tree.h
blobfa94c5ee1714affb97d961be5a616d2434978565
1 /* This file is part of GCC.
3 GCC is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License as published by
5 the Free Software Foundation; either version 3, or (at your option)
6 any later version.
8 GCC is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 GNU General Public License for more details.
13 You should have received a copy of the GNU General Public License
14 along with GCC; see the file COPYING3. If not see
15 <http://www.gnu.org/licenses/>. */
17 #ifndef __PYPY_TREE_H__
18 #define __PYPY_TREE_H__
20 extern void gpy_ident_vec_init( gpy_ident_vector_t * const v )
21 __attribute__((nonnull));
23 extern void gpy_ident_vec_push( gpy_ident_vector_t * const v, void * s )
24 __attribute__((nonnull));
26 extern void * gpy_ident_vec_pop( gpy_ident_vector_t * const v )
27 __attribute__((nonnull));
29 extern gpy_hashval_t gpy_dd_hash_string( const char * );
31 extern gpy_hash_entry_t * gpy_dd_hash_lookup_table( gpy_hash_tab_t *, gpy_hashval_t );
33 extern void ** gpy_dd_hash_insert( gpy_hashval_t, void *, gpy_hash_tab_t * );
35 extern void gpy_dd_hash_grow_table( gpy_hash_tab_t * );
37 extern void gpy_dd_hash_init_table( gpy_hash_tab_t ** );
39 extern void gpy_gg_invoke_garbage( void );
41 extern void gpy_garbage_free_obj( gpy_symbol_obj ** );
43 /* expression.c */
44 extern VEC(tree,gc) * gpy_process_assign( gpy_symbol_obj ** , gpy_symbol_obj **, VEC(gpy_ctx_t,gc) * );
46 extern VEC(tree,gc) * gpy_process_bin_expression( gpy_symbol_obj ** , gpy_symbol_obj **,
47 gpy_opcode_t, VEC(gpy_ctx_t,gc) * );
49 extern VEC(tree,gc) * gpy_fold_primitive( const gpy_symbol_obj * const );
51 /* ------- */
53 extern VEC(tree,gc) * gpy_process_expression( const gpy_symbol_obj * const, VEC(gpy_ctx_t,gc) * );
55 extern VEC(tree,gc) * gpy_process_class( gpy_symbol_obj * const, VEC(gpy_ctx_t,gc) * );
57 extern VEC(tree,gc) * gpy_process_functor( const gpy_symbol_obj * const, const char *,
58 VEC(gpy_ctx_t,gc) * );
60 extern VEC(tree,gc) * gpy_get_tree( gpy_symbol_obj *, VEC(gpy_ctx_t,gc) * );
62 extern VEC(tree,gc) * gpy_process_print( gpy_symbol_obj *, VEC(gpy_ctx_t,gc) * );
63 /* ------- */
65 extern tree gpy_main_method_decl( VEC(tree,gc) * , gpy_context_branch * );
67 extern tree gpy_ctx_lookup_decl( VEC(gpy_ctx_t,gc) *, const char *, enum DECL_T );
69 extern void gpy_process_decl( gpy_symbol_obj * );
71 extern bool gpy_ctx_push_decl( tree, const char *, gpy_context_branch *,
72 enum DECL_T );
74 extern gpy_symbol_obj * gpy_symbol_obj_clone( gpy_symbol_obj *, bool );
76 extern void gpy_symbol_init_ctx( gpy_symbol_obj * const )
77 __attribute__((nonnull));
79 extern void gpy_init_ctx_branch( gpy_context_branch * const * )
80 __attribute__((nonnull));
82 #endif //__PYPY_TREE_H__