/* * Copyright 1993-2002 Christopher Seiwald and Perforce Software, Inc. * * This file is part of Jam - see jam.c for Copyright information. */ /* * compile.h - compile parsed jam statements * * 01/22/01 (seiwald) - replace evaluate_if() with compile_eval() * 01/24/01 (seiwald) - 'while' statement * 03/02/02 (seiwald) - rules can be invoked via variable names * 02/28/02 (seiwald) - merge EXEC_xxx flags in with RULE_xxx * 10/22/02 (seiwald) - working return/break/continue statements * 11/04/02 (seiwald) - const-ing for string literals */ void compile_builtins(); LIST *compile_append( PARSE *parse, LOL *args, int *jmp ); LIST *compile_break( PARSE *parse, LOL *args, int *jmp ); LIST *compile_foreach( PARSE *parse, LOL *args, int *jmp ); LIST *compile_if( PARSE *parse, LOL *args, int *jmp ); LIST *compile_eval( PARSE *parse, LOL *args, int *jmp ); LIST *compile_include( PARSE *parse, LOL *args, int *jmp ); LIST *compile_list( PARSE *parse, LOL *args, int *jmp ); LIST *compile_local( PARSE *parse, LOL *args, int *jmp ); LIST *compile_null( PARSE *parse, LOL *args, int *jmp ); LIST *compile_on( PARSE *parse, LOL *args, int *jmp ); LIST *compile_rule( PARSE *parse, LOL *args, int *jmp ); LIST *compile_rules( PARSE *parse, LOL *args, int *jmp ); LIST *compile_set( PARSE *parse, LOL *args, int *jmp ); LIST *compile_setcomp( PARSE *parse, LOL *args, int *jmp ); LIST *compile_setexec( PARSE *parse, LOL *args, int *jmp ); LIST *compile_settings( PARSE *parse, LOL *args, int *jmp ); LIST *compile_switch( PARSE *parse, LOL *args, int *jmp ); LIST *compile_while( PARSE *parse, LOL *args, int *jmp ); LIST *evaluate_rule( const char *rulename, LOL *args, LIST *result ); /* 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 */ /* Conditions for compile_if() */ # define EXPR_NOT 0 /* ! cond */ # define EXPR_AND 1 /* cond && cond */ # define EXPR_OR 2 /* cond || cond */ # define EXPR_EXISTS 3 /* arg */ # define EXPR_EQUALS 4 /* arg = arg */ # define EXPR_NOTEQ 5 /* arg != arg */ # define EXPR_LESS 6 /* arg < arg */ # define EXPR_LESSEQ 7 /* arg <= arg */ # define EXPR_MORE 8 /* arg > arg */ # define EXPR_MOREEQ 9 /* arg >= arg */ # define EXPR_IN 10 /* arg in arg */ /* Flags for compile_return */ # define JMP_NONE 0 /* flow continues */ # define JMP_BREAK 1 /* break out of loop */ # define JMP_CONTINUE 2 /* step to end of loop */ # define JMP_RETURN 3 /* return from rule */
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#2 | 2456 | Perforce staff |
Internal Perforce jam changes. See RELNOTES for details. They're manifold, and bound for jam 2.5. |
||
#1 | 1619 | Perforce staff | Branch of jam 2.4 rc2 for further work. | ||
//guest/perforce_software/jam/src/compile.h | |||||
#5 | 1497 | Perforce staff |
Support for invoking rules via variable expansion, i.e. "$(rule) targets : sources ;". Not yet documented. Documented in Jam.html (rmg change 1536) |
||
#4 | 1492 | Perforce staff |
Replace action modifiers EXEC_* from compile.h with RULE_* flags from rules.h. They've always been the same quantity defined in two places. Note that RULE_NEWSRCS is now RULE_UPDATED, to be consistent with 'actions updated'. No functional change. |
||
#3 | 1319 | rmg |
Jam 2.3 + Perforce's internal changes. This change is a drop of the Perforce internal Jam changes since the 2.3 public release. The individual changes represented herein are preserved in the //guest/richard_geiger/intjam/ branch. The intent of this drop is to provide a base, from which other contributors' Jam branches may be integrated into. It is not intended to become a packaged release in this state. We will be integrating changes from other users prior to creating the next packaged release. Please refer to the src/RELNOTES file for an overview of the changes present in this integration. - Richard Geiger Open Source Engineer at Perforce |
||
#2 | 486 | Perforce staff |
Jam 2.3. See RELNOTES for a list of changes from 2.2.x. Just about every source file was touched when jam got ANSI-fied. |
||
#1 | 2 | laura | Add Jam/MR 2.2 source |