40 |
#endif |
#endif |
41 |
|
|
42 |
char *arg1hold; |
char *arg1hold; |
43 |
|
char *arg2hold; |
44 |
|
char *arg3hold; |
45 |
char mime_type[256]; /* global to inherit */ |
char mime_type[256]; /* global to inherit */ |
46 |
|
|
47 |
%} |
%} |
53 |
}; |
}; |
54 |
|
|
55 |
/* boa.conf tokens */ |
/* boa.conf tokens */ |
56 |
%token <cval> STMT_NO_ARGS STMT_ONE_ARG STMT_TWO_ARGS |
%token <cval> STMT_NO_ARGS STMT_ONE_ARG STMT_TWO_ARGS STMT_FOUR_ARGS |
57 |
|
|
58 |
/* mime.type tokens */ |
/* mime.type tokens */ |
59 |
%token <sval> MIMETYPE |
%token <sval> MIMETYPE |
60 |
%token <sval> STRING |
%token <sval> STRING |
61 |
%token <ival> INTEGER |
%token <ival> INTEGER |
62 |
|
%token STRING_SEP ':' |
63 |
|
|
64 |
%start ConfigFiles |
%start ConfigFiles |
65 |
|
|
76 |
StmtNoArgs |
StmtNoArgs |
77 |
| StmtOneArg |
| StmtOneArg |
78 |
| StmtTwoArgs |
| StmtTwoArgs |
79 |
|
| StmtFourArgs |
80 |
; |
; |
81 |
|
|
82 |
StmtNoArgs: STMT_NO_ARGS |
StmtNoArgs: STMT_NO_ARGS |
83 |
{ if ($1->action) { |
{ if ($1->action) { |
84 |
DBG(printf("StmtNoArgs: %s\n",$1->name);) |
DBG(printf("StmtNoArgs: %s\n",$1->name);) |
85 |
$1->action(NULL,NULL,$1->object); |
$1->action(NULL, NULL, NULL,NULL,$1->object); |
86 |
} |
} |
87 |
} |
} |
88 |
; |
; |
90 |
StmtOneArg: STMT_ONE_ARG STRING |
StmtOneArg: STMT_ONE_ARG STRING |
91 |
{ if ($1->action) { |
{ if ($1->action) { |
92 |
DBG(printf("StmtOneArg: %s %s\n",$1->name,$2);) |
DBG(printf("StmtOneArg: %s %s\n",$1->name,$2);) |
93 |
$1->action($2,NULL,$1->object); |
$1->action($2,NULL, NULL, NULL,$1->object); |
94 |
} |
} |
95 |
} |
} |
96 |
; |
; |
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,$1->object); |
$1->action($4,arg1hold,NULL, NULL, $1->object); |
105 |
} |
} |
106 |
free(arg1hold); |
free(arg1hold); |
107 |
} |
} |
108 |
|
StmtFourArgs: STMT_FOUR_ARGS STRING |
109 |
|
{ arg1hold = strdup($2); } |
110 |
|
STRING |
111 |
|
{ arg2hold = strdup($4); } |
112 |
|
STRING |
113 |
|
{ arg3hold = strdup($6); } |
114 |
|
STRING |
115 |
|
{ if ($1->action) { |
116 |
|
DBG(printf("StmtTwoArgs: '%s' '%s' '%s' '%s' '%s'\n", |
117 |
|
$1->name,arg1hold, arg2hold, arg3hold, $8);) |
118 |
|
$1->action(arg1hold, arg2hold, arg3hold, $8, $1->object); |
119 |
|
} |
120 |
|
free(arg1hold); |
121 |
|
free(arg2hold); |
122 |
|
free(arg3hold); |
123 |
|
} |
124 |
; |
; |
125 |
|
|
|
|
|
126 |
/******************* mime.types **********************/ |
/******************* mime.types **********************/ |
127 |
|
|
128 |
MimeTypeStmts: MimeTypeStmts MimeTypeStmt |
MimeTypeStmts: MimeTypeStmts MimeTypeStmt |