The Machine Perception Toolbox

[Introduction]- [News]- [Download]- [Screenshots]- [Manual (pdf)]- [Forums]- [API Reference]- [Repository ]

 

Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

compile.h

Go to the documentation of this file.
00001 /*
00002  * Copyright 1993, 2000 Christopher Seiwald.
00003  *
00004  * This file is part of Jam - see jam.c for Copyright information.
00005  */
00006 
00007 /*  This file is ALSO:
00008  *  (C) Copyright David Abrahams 2001. Permission to copy, use,
00009  *  modify, sell and distribute this software is granted provided this
00010  *  copyright notice appears in all copies. This software is provided
00011  *  "as is" without express or implied warranty, and with no claim as
00012  *  to its suitability for any purpose.
00013  */
00014 
00015 #ifndef COMPILE_DWA20011022_H
00016 # define COMPILE_DWA20011022_H
00017 
00018 # include "frames.h"
00019 # include "parse.h"
00020 # include "regexp.h"
00021 
00022 /*
00023  * compile.h - compile parsed jam statements
00024  */
00025 
00026 void compile_builtins();
00027 
00028 LIST *compile_append( PARSE *parse, FRAME *frame );
00029 LIST *compile_foreach( PARSE *parse, FRAME *frame );
00030 LIST *compile_if( PARSE *parse, FRAME *frame );
00031 LIST *compile_eval( PARSE *parse, FRAME *args );
00032 LIST *compile_include( PARSE *parse, FRAME *frame );
00033 LIST *compile_list( PARSE *parse, FRAME *frame );
00034 LIST *compile_local( PARSE *parse, FRAME *frame );
00035 LIST *compile_module( PARSE *parse, FRAME *frame );
00036 LIST *compile_class( PARSE *parse, FRAME *frame );
00037 LIST *compile_null( PARSE *parse, FRAME *frame );
00038 LIST *compile_on( PARSE *parse, FRAME *frame );
00039 LIST *compile_rule( PARSE *parse, FRAME *frame );
00040 LIST *compile_rules( PARSE *parse, FRAME *frame );
00041 LIST *compile_set( PARSE *parse, FRAME *frame );
00042 LIST *compile_setcomp( PARSE *parse, FRAME *frame );
00043 LIST *compile_setexec( PARSE *parse, FRAME *frame );
00044 LIST *compile_settings( PARSE *parse, FRAME *frame );
00045 LIST *compile_switch( PARSE *parse, FRAME *frame );
00046 LIST *compile_while( PARSE *parse, FRAME *frame );
00047 
00048 LIST *evaluate_rule( char *rulename, FRAME *frame );
00049 
00050 regexp* regex_compile( const char* pattern );
00051 
00052 void profile_dump();
00053 
00054 /* Flags for compile_set(), etc */
00055 
00056 # define ASSIGN_SET     0x00    /* = assign variable */
00057 # define ASSIGN_APPEND  0x01    /* += append variable */
00058 # define ASSIGN_DEFAULT 0x02    /* set only if unset */
00059 
00060 /* Flags for compile_setexec() */
00061 
00062 # define EXEC_UPDATED   0x01    /* executes updated */
00063 # define EXEC_TOGETHER  0x02    /* executes together */
00064 # define EXEC_IGNORE    0x04    /* executes ignore */
00065 # define EXEC_QUIETLY   0x08    /* executes quietly */
00066 # define EXEC_PIECEMEAL 0x10    /* executes piecemeal */
00067 # define EXEC_EXISTING  0x20    /* executes existing */
00068 
00069 /* Conditions for compile_if() */
00070 
00071 # define EXPR_NOT       0       /* ! cond */
00072 # define EXPR_AND       1       /* cond && cond */
00073 # define EXPR_OR        2       /* cond || cond */
00074 
00075 # define EXPR_EXISTS    3       /* arg */
00076 # define EXPR_EQUALS    4       /* arg = arg */
00077 # define EXPR_NOTEQ     5       /* arg != arg */
00078 # define EXPR_LESS      6       /* arg < arg  */
00079 # define EXPR_LESSEQ    7       /* arg <= arg */
00080 # define EXPR_MORE      8       /* arg > arg  */
00081 # define EXPR_MOREEQ    9       /* arg >= arg */
00082 # define EXPR_IN        10      /* arg in arg */
00083 
00084 #endif
00085 

Generated on Mon Nov 8 17:07:32 2004 for MPT by  doxygen 1.3.9.1