--- hydra/src/boa_grammar.y 2002/09/24 17:12:47 1.2 +++ hydra/src/boa_grammar.y 2002/09/25 06:42:34 1.3 @@ -20,7 +20,7 @@ * */ -/* $Id: boa_grammar.y,v 1.2 2002/09/24 17:12:47 nmav Exp $*/ +/* $Id: boa_grammar.y,v 1.3 2002/09/25 06:42:34 nmav Exp $*/ #include #include @@ -53,7 +53,7 @@ }; /* boa.conf tokens */ -%token STMT_NO_ARGS STMT_ONE_ARG STMT_TWO_ARGS STMT_FOUR_ARGS +%token STMT_NO_ARGS STMT_ONE_ARG STMT_TWO_ARGS STMT_THREE_ARGS STMT_FOUR_ARGS /* mime.type tokens */ %token MIMETYPE @@ -76,6 +76,7 @@ StmtNoArgs | StmtOneArg | StmtTwoArgs + | StmtThreeArgs | StmtFourArgs ; @@ -105,6 +106,23 @@ } free(arg1hold); } + ; + +StmtThreeArgs: STMT_THREE_ARGS STRING + { arg1hold = strdup($2); } + STRING + { arg2hold = strdup($4); } + STRING + { if ($1->action) { + DBG(printf("StmtThreeArgs: '%s' '%s' '%s' '%s'\n", + $1->name,arg1hold, arg2hold, $6);) + $1->action(arg1hold, arg2hold, $6, NULL, $1->object); + } + free(arg1hold); + free(arg2hold); + } + ; + StmtFourArgs: STMT_FOUR_ARGS STRING { arg1hold = strdup($2); } STRING @@ -113,7 +131,7 @@ { arg3hold = strdup($6); } STRING { if ($1->action) { - DBG(printf("StmtTwoArgs: '%s' '%s' '%s' '%s' '%s'\n", + DBG(printf("StmtFourArgs: '%s' '%s' '%s' '%s' '%s'\n", $1->name,arg1hold, arg2hold, arg3hold, $8);) $1->action(arg1hold, arg2hold, arg3hold, $8, $1->object); }