32 |
int yyerror(char * msg); |
int yyerror(char * msg); |
33 |
|
|
34 |
/* yydebug = 1; */ |
/* yydebug = 1; */ |
|
|
|
35 |
#ifdef DEBUG |
#ifdef DEBUG |
36 |
#define DBG(x) x |
#define DBG(x) x |
37 |
#else |
#else |
52 |
}; |
}; |
53 |
|
|
54 |
/* boa.conf tokens */ |
/* boa.conf tokens */ |
55 |
%token <cval> STMT_NO_ARGS STMT_ONE_ARG STMT_TWO_ARGS STMT_FOUR_ARGS |
%token <cval> STMT_NO_ARGS STMT_ONE_ARG STMT_TWO_ARGS STMT_THREE_ARGS STMT_FOUR_ARGS |
56 |
|
|
57 |
/* mime.type tokens */ |
/* mime.type tokens */ |
58 |
%token <sval> MIMETYPE |
%token <sval> MIMETYPE |
75 |
StmtNoArgs |
StmtNoArgs |
76 |
| StmtOneArg |
| StmtOneArg |
77 |
| StmtTwoArgs |
| StmtTwoArgs |
78 |
|
| StmtThreeArgs |
79 |
| StmtFourArgs |
| StmtFourArgs |
80 |
; |
; |
81 |
|
|
101 |
{ if ($1->action) { |
{ if ($1->action) { |
102 |
DBG(printf("StmtTwoArgs: '%s' '%s' '%s'\n", |
DBG(printf("StmtTwoArgs: '%s' '%s' '%s'\n", |
103 |
$1->name,arg1hold,$4);) |
$1->name,arg1hold,$4);) |
104 |
$1->action($4,arg1hold,NULL, NULL, $1->object); |
$1->action(arg1hold, $4,NULL, NULL, $1->object); |
105 |
} |
} |
106 |
free(arg1hold); |
free(arg1hold); |
107 |
} |
} |
108 |
|
; |
109 |
|
|
110 |
|
StmtThreeArgs: STMT_THREE_ARGS STRING |
111 |
|
{ arg1hold = strdup($2); } |
112 |
|
STRING |
113 |
|
{ arg2hold = strdup($4); } |
114 |
|
STRING |
115 |
|
{ if ($1->action) { |
116 |
|
DBG(printf("StmtThreeArgs: '%s' '%s' '%s' '%s'\n", |
117 |
|
$1->name,arg1hold, arg2hold, $6);) |
118 |
|
$1->action(arg1hold, arg2hold, $6, NULL, $1->object); |
119 |
|
} |
120 |
|
free(arg1hold); |
121 |
|
free(arg2hold); |
122 |
|
} |
123 |
|
; |
124 |
|
|
125 |
StmtFourArgs: STMT_FOUR_ARGS STRING |
StmtFourArgs: STMT_FOUR_ARGS STRING |
126 |
{ arg1hold = strdup($2); } |
{ arg1hold = strdup($2); } |
127 |
STRING |
STRING |
130 |
{ arg3hold = strdup($6); } |
{ arg3hold = strdup($6); } |
131 |
STRING |
STRING |
132 |
{ if ($1->action) { |
{ if ($1->action) { |
133 |
DBG(printf("StmtTwoArgs: '%s' '%s' '%s' '%s' '%s'\n", |
DBG(printf("StmtFourArgs: '%s' '%s' '%s' '%s' '%s'\n", |
134 |
$1->name,arg1hold, arg2hold, arg3hold, $8);) |
$1->name,arg1hold, arg2hold, arg3hold, $8);) |
135 |
$1->action(arg1hold, arg2hold, arg3hold, $8, $1->object); |
$1->action(arg1hold, arg2hold, arg3hold, $8, $1->object); |
136 |
} |
} |