#ifndef _COMPILE_H_ #define _COMPILE_H_ #include "Parse.hpp" /* * Copyright 1993, 2000 Christopher Seiwald. * * This file is part of Jam - see jam.c for Copyright information. */ /* * compile.h - compile parsed jam statements */ void compile_builtins(); LIST *compile_append( Jam::Parse *parse, LOL *args ); LIST *compile_foreach( Jam::Parse *parse, LOL *args ); LIST *compile_if( Jam::Parse *parse, LOL *args ); LIST *compile_include( Jam::Parse *parse, LOL *args ); LIST *compile_list( Jam::Parse *parse, LOL *args ); LIST *compile_local( Jam::Parse *parse, LOL *args ); LIST *compile_null( Jam::Parse *parse, LOL *args ); LIST *compile_rule( Jam::Parse *parse, LOL *args ); LIST *compile_rules( Jam::Parse *parse, LOL *args ); LIST *compile_set( Jam::Parse *parse, LOL *args ); LIST *compile_setcomp( Jam::Parse *parse, LOL *args ); LIST *compile_setexec( Jam::Parse *parse, LOL *args ); LIST *compile_settings( Jam::Parse *parse, LOL *args ); LIST *compile_switch( Jam::Parse *parse, LOL *args ); LIST *evaluate_rule( const char *rulename, LOL *args ); /* Flags for compile_set(), etc */ # define ASSIGN_SET 0x00 /* = assign variable */ # define ASSIGN_APPEND 0x01 /* += append variable */ # define ASSIGN_DEFAULT 0x02 /* set only if unset */ /* Flags for compile_setexec() */ # define EXEC_UPDATED 0x01 /* executes updated */ # define EXEC_TOGETHER 0x02 /* executes together */ # define EXEC_IGNORE 0x04 /* executes ignore */ # define EXEC_QUIETLY 0x08 /* executes quietly */ # define EXEC_PIECEMEAL 0x10 /* executes piecemeal */ # define EXEC_EXISTING 0x20 /* executes existing */ /* Conditions for compile_if() */ # define COND_NOT 0 /* ! cond */ # define COND_AND 1 /* cond && cond */ # define COND_OR 2 /* cond || cond */ # define COND_EXISTS 3 /* arg */ # define COND_EQUALS 4 /* arg = arg */ # define COND_NOTEQ 5 /* arg != arg */ # define COND_LESS 6 /* arg < arg */ # define COND_LESSEQ 7 /* arg <= arg */ # define COND_MORE 8 /* arg > arg */ # define COND_MOREEQ 9 /* arg >= arg */ # define COND_IN 10 /* arg in arg */ #endif