/[hydra]/hydra/src/boa_grammar.y
ViewVC logotype

Diff of /hydra/src/boa_grammar.y

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1.1.1 by nmav, Sat Sep 21 13:53:38 2002 UTC revision 1.4 by nmav, Sun Oct 27 10:06:28 2002 UTC
# Line 32  Line 32 
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
# Line 40  int yyerror(char * msg); Line 39  int yyerror(char * msg);
39  #endif  #endif
40    
41  char *arg1hold;  char *arg1hold;
42    char *arg2hold;
43    char *arg3hold;
44  char mime_type[256];            /* global to inherit */  char mime_type[256];            /* global to inherit */
45    
46  %}  %}
# Line 51  char mime_type[256];            /* globa Line 52  char mime_type[256];            /* globa
52  };  };
53    
54  /* boa.conf tokens */  /* boa.conf tokens */
55  %token <cval> STMT_NO_ARGS STMT_ONE_ARG STMT_TWO_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
59  %token <sval> STRING  %token <sval> STRING
60  %token <ival> INTEGER  %token <ival> INTEGER
61    %token STRING_SEP ':'
62    
63  %start ConfigFiles  %start ConfigFiles
64    
# Line 73  BoaConfigStmt: Line 75  BoaConfigStmt:
75                          StmtNoArgs                          StmtNoArgs
76          |               StmtOneArg          |               StmtOneArg
77          |               StmtTwoArgs          |               StmtTwoArgs
78            |               StmtThreeArgs
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          ;          ;
# Line 86  StmtNoArgs:            STMT_NO_ARGS Line 90  StmtNoArgs:            STMT_NO_ARGS
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          ;          ;
# Line 97  StmtTwoArgs:           STMT_TWO_ARGS STRING Line 101  StmtTwoArgs:           STMT_TWO_ARGS STRING
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(arg1hold, $4,NULL, NULL, $1->object);
105                      }
106                      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);                    free(arg1hold);
121                      free(arg2hold);
122                  }                  }
123          ;          ;
124    
125    StmtFourArgs:           STMT_FOUR_ARGS STRING
126                    { arg1hold = strdup($2); }
127                             STRING
128                    { arg2hold = strdup($4); }
129                             STRING
130                    { arg3hold = strdup($6); }
131                             STRING
132                    { if ($1->action) {
133                            DBG(printf("StmtFourArgs: '%s' '%s' '%s' '%s' '%s'\n",
134                                        $1->name,arg1hold, arg2hold, arg3hold, $8);)
135                            $1->action(arg1hold, arg2hold, arg3hold, $8, $1->object);
136                      }
137                      free(arg1hold);
138                      free(arg2hold);
139                      free(arg3hold);
140                    }
141            ;
142    
143  /******************* mime.types **********************/  /******************* mime.types **********************/
144    

Legend:
Removed from v.1.1.1.1  
changed lines
  Added in v.1.4

webmaster@linux.gr
ViewVC Help
Powered by ViewVC 1.1.26