diff options
Diffstat (limited to 'tools/build/v2/engine/function.h')
-rw-r--r-- | tools/build/v2/engine/function.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/tools/build/v2/engine/function.h b/tools/build/v2/engine/function.h new file mode 100644 index 0000000000..64f26b3cf7 --- /dev/null +++ b/tools/build/v2/engine/function.h @@ -0,0 +1,46 @@ +/* + * Copyright 2011 Steven Watanabe + * Distributed under the Boost Software License, Version 1.0. + * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) + */ + +#ifndef FUNCTION_SW20111123_H +#define FUNCTION_SW20111123_H + +#include "object.h" +#include "frames.h" +#include "lists.h" +#include "parse.h" +#include "strings.h" + +typedef struct _function FUNCTION; +typedef struct _stack STACK; + +STACK * stack_global( void ); +void stack_push( STACK * s, LIST * l ); +LIST * stack_pop( STACK * s ); + +FUNCTION * function_compile( PARSE * parse ); +FUNCTION * function_builtin( LIST * ( * func )( FRAME * frame, int flags ), int flags, const char * * args ); +void function_refer( FUNCTION * ); +void function_free( FUNCTION * ); +OBJECT * function_rulename( FUNCTION * ); +void function_set_rulename( FUNCTION *, OBJECT * ); +void function_location( FUNCTION *, OBJECT * *, int * ); +LIST * function_run( FUNCTION * function, FRAME * frame, STACK * s ); + +FUNCTION * function_compile_actions( const char * actions, OBJECT * file, int line ); +void function_run_actions( FUNCTION * function, FRAME * frame, STACK * s, string * out ); + +FUNCTION * function_bind_variables( FUNCTION * f, module_t * module, int * counter ); +FUNCTION * function_unbind_variables( FUNCTION * f ); + +void function_done( void ); + +#ifdef HAVE_PYTHON + +FUNCTION * function_python( PyObject * function, PyObject * bjam_signature ); + +#endif + +#endif |