|
System | : | Linux MiraNet 3.0.0-14-generic-pae #23-Ubuntu SMP Mon Nov 21 22:07:10 UTC 2011 i686 |
Software | : | Apache. PHP/5.3.6-13ubuntu3.10 |
ID | : | uid=65534(nobody) gid=65534(nogroup) groups=65534(nogroup)
|
|
Safe Mode | : | OFF |
Open_Basedir | : | OFF |
Freespace | : | 25.66 GB of 70.42 GB (36.44%) |
|
MySQL: ON MSSQL: OFF Oracle: OFF PostgreSQL: OFF Curl: OFF Sockets: ON Fetch: OFF Wget: ON Perl: ON |
Disabled Functions: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
|
[ System Info ]
[ Processes ]
[ SQL Manager ]
[ Eval ]
[ Encoder ]
[ Mailer ]
[ Back Connection ]
[ Backdoor Server ]
[ Kernel Exploit Search ]
[ MD5 Decrypter ]
[ Reverse IP ]
[ Kill Shell ]
[ FTP Brute-Force ]
|
|
/
usr/
src/
courier-0.66.1/
maildrop/
- drwxrwxrwx
|
Viewing file: recipe.h (2.24 KB) -rw-rw-rw-Select action/file-type:  ( +) |  ( +) |  ( +) | Code ( +) | Session ( +) |  ( +) | SDB ( +) |  ( +) |  ( +) |  ( +) |  ( +) |  ( +) |
#ifndef recipe_h #define recipe_h
#include "config.h" #include "recipenode.h" #include "token.h"
class Lexer; class Token;
////////////////////////////////////////////////////////////////////////// // // Class Recipe - parsed structure of a recipe file. // This class reads tokens from the Lexer class, and arranges them in a // logical structure that represents the recipe file. The Recipe object // maints a list of RecipeNode objects, which roughly represent individual // statements, and elements of a recipe file. There is more or less a // one-to-one relationship between Tokens and Recipenodes. Usually one // RecipeNode is created for each token - but not always. The RecipeNode // objects are automatically created by the Recipe object when ParseRecipe() // is called to translate the tokens returned by the Lexer class into // the RecipeNode structure. When the Recipe object is destroyed, it // automatically destroys all RecipeNode objects it has allocated. // The RecipeNode objects are created using a simple recursive-descent // parser. // // The ExecuteRecipe() function actually starts the ball rolling by // calling the Evaluate() function of the first RecipeNode object in the // structure. // //////////////////////////////////////////////////////////////////////////
#include "../dbobj.h"
class Recipe {
RecipeNode *firstNode, *lastNode; // All nodes in this recipe. RecipeNode *topNode; // Topmost node.
RecipeNode *alloc(RecipeNode::RecipeNodeType);
Lexer *lex; Token cur_tok;
public: Recipe(); ~Recipe();
int ParseRecipe(Lexer &); void ExecuteRecipe(); void errmsg(RecipeNode &, const char *);
#ifdef DbObj DbObj gdbm_file; #endif
private: // This is, essentially, a recursive-descent parser that builds // the RecipeNode tree. RecipeNode *ParseExpr() { return (ParseAssign()); } RecipeNode *ParseAssign(); RecipeNode *ParseLogicalOr(); RecipeNode *ParseLogicalAnd(); RecipeNode *ParseComparison(); RecipeNode *ParseBitwiseOr(); RecipeNode *ParseBitwiseAnd(); RecipeNode *ParseAddSub(); RecipeNode *ParseMultDiv(); RecipeNode *ParseStrRegExp(); RecipeNode *ParseStatementList(); RecipeNode *ParseStatement(); RecipeNode *ParseSubStatement(); RecipeNode *ParseString(); RecipeNode *ParseElement(); } ;
#endif
|