/[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 by nmav, Sat Sep 21 13:53:38 2002 UTC revision 1.3 by nmav, Wed Sep 25 06:42:34 2002 UTC
# Line 40  int yyerror(char * msg); Line 40  int yyerror(char * msg);
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  %}  %}
# Line 51  char mime_type[256];            /* globa Line 53  char mime_type[256];            /* globa
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_THREE_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    
# Line 73  BoaConfigStmt: Line 76  BoaConfigStmt:
76                          StmtNoArgs                          StmtNoArgs
77          |               StmtOneArg          |               StmtOneArg
78          |               StmtTwoArgs          |               StmtTwoArgs
79            |               StmtThreeArgs
80            |               StmtFourArgs
81          ;          ;
82    
83  StmtNoArgs:             STMT_NO_ARGS  StmtNoArgs:             STMT_NO_ARGS
84                  { if ($1->action) {                  { if ($1->action) {
85                          DBG(printf("StmtNoArgs: %s\n",$1->name);)                          DBG(printf("StmtNoArgs: %s\n",$1->name);)
86                          $1->action(NULL,NULL,$1->object);                          $1->action(NULL, NULL, NULL,NULL,$1->object);
87                   }                   }
88                  }                  }
89          ;          ;
# Line 86  StmtNoArgs:            STMT_NO_ARGS Line 91  StmtNoArgs:            STMT_NO_ARGS
91  StmtOneArg:             STMT_ONE_ARG STRING  StmtOneArg:             STMT_ONE_ARG STRING
92                  { if ($1->action) {                  { if ($1->action) {
93                          DBG(printf("StmtOneArg: %s %s\n",$1->name,$2);)                          DBG(printf("StmtOneArg: %s %s\n",$1->name,$2);)
94                          $1->action($2,NULL,$1->object);                          $1->action($2,NULL, NULL, NULL,$1->object);
95                   }                   }
96                  }                  }
97          ;          ;
# Line 97  StmtTwoArgs:           STMT_TWO_ARGS STRING Line 102  StmtTwoArgs:           STMT_TWO_ARGS STRING
102                  { if ($1->action) {                  { if ($1->action) {
103                          DBG(printf("StmtTwoArgs: '%s' '%s' '%s'\n",                          DBG(printf("StmtTwoArgs: '%s' '%s' '%s'\n",
104                                      $1->name,arg1hold,$4);)                                      $1->name,arg1hold,$4);)
105                          $1->action($4,arg1hold,$1->object);                          $1->action($4,arg1hold,NULL, NULL, $1->object);
106                    }                    }
107                    free(arg1hold);                    free(arg1hold);
108                  }                  }
109          ;          ;
110    
111    StmtThreeArgs:          STMT_THREE_ARGS STRING
112                    { arg1hold = strdup($2); }
113                             STRING
114                    { arg2hold = strdup($4); }
115                             STRING
116                    { if ($1->action) {
117                            DBG(printf("StmtThreeArgs: '%s' '%s' '%s' '%s'\n",
118                                        $1->name,arg1hold, arg2hold, $6);)
119                            $1->action(arg1hold, arg2hold, $6, NULL, $1->object);
120                      }
121                      free(arg1hold);
122                      free(arg2hold);
123                    }
124            ;
125    
126    StmtFourArgs:           STMT_FOUR_ARGS STRING
127                    { arg1hold = strdup($2); }
128                             STRING
129                    { arg2hold = strdup($4); }
130                             STRING
131                    { arg3hold = strdup($6); }
132                             STRING
133                    { if ($1->action) {
134                            DBG(printf("StmtFourArgs: '%s' '%s' '%s' '%s' '%s'\n",
135                                        $1->name,arg1hold, arg2hold, arg3hold, $8);)
136                            $1->action(arg1hold, arg2hold, arg3hold, $8, $1->object);
137                      }
138                      free(arg1hold);
139                      free(arg2hold);
140                      free(arg3hold);
141                    }
142            ;
143    
144  /******************* mime.types **********************/  /******************* mime.types **********************/
145    

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.3

webmaster@linux.gr
ViewVC Help
Powered by ViewVC 1.1.26