config.y (72841) | config.y (72844) |
---|---|
1%union { 2 char *str; 3 int val; 4 struct file_list *file; 5} 6 7%token ARCH 8%token COMMA --- 46 unchanged lines hidden (view full) --- 55 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 56 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 57 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 58 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 59 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 60 * SUCH DAMAGE. 61 * 62 * @(#)config.y 8.1 (Berkeley) 6/6/93 | 1%union { 2 char *str; 3 int val; 4 struct file_list *file; 5} 6 7%token ARCH 8%token COMMA --- 46 unchanged lines hidden (view full) --- 55 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 56 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 57 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 58 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 59 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 60 * SUCH DAMAGE. 61 * 62 * @(#)config.y 8.1 (Berkeley) 6/6/93 |
63 * $FreeBSD: head/usr.sbin/config/config.y 72841 2001-02-22 03:40:50Z peter $ | 63 * $FreeBSD: head/usr.sbin/config/config.y 72844 2001-02-22 04:00:29Z peter $ |
64 */ 65 66#include <ctype.h> 67#include <err.h> 68#include <stdio.h> 69#include <string.h> 70 71#include "config.h" --- 81 unchanged lines hidden (view full) --- 153 CONFIG System_id System_parameter_list 154 = { errx(1, "line %d: root/dump/swap specifications obsolete", yyline);} 155 | 156 CONFIG System_id 157 ; 158 159System_id: 160 Save_id | 64 */ 65 66#include <ctype.h> 67#include <err.h> 68#include <stdio.h> 69#include <string.h> 70 71#include "config.h" --- 81 unchanged lines hidden (view full) --- 153 CONFIG System_id System_parameter_list 154 = { errx(1, "line %d: root/dump/swap specifications obsolete", yyline);} 155 | 156 CONFIG System_id 157 ; 158 159System_id: 160 Save_id |
161 = { 162 newopt(ns("KERNEL"), $1); 163 }; | 161 = { newopt(&mkopt, ns("KERNEL"), $1); }; |
164 165System_parameter_list: 166 System_parameter_list ID 167 | ID 168 ; 169 170Opt_list: 171 Opt_list COMMA Option 172 | 173 Option 174 ; 175 176Option: 177 Save_id 178 = { 179 char *s; 180 | 162 163System_parameter_list: 164 System_parameter_list ID 165 | ID 166 ; 167 168Opt_list: 169 Opt_list COMMA Option 170 | 171 Option 172 ; 173 174Option: 175 Save_id 176 = { 177 char *s; 178 |
181 newopt($1, NULL); | 179 newopt(&opt, $1, NULL); |
182 if ((s = strchr($1, '='))) 183 errx(1, "line %d: The `=' in options should not be quoted", yyline); 184 } | 185 Save_id EQUALS Opt_value 186 = { | 180 if ((s = strchr($1, '='))) 181 errx(1, "line %d: The `=' in options should not be quoted", yyline); 182 } | 183 Save_id EQUALS Opt_value 184 = { |
187 newopt($1, $3); | 185 newopt(&opt, $1, $3); |
188 } ; 189 190Opt_value: 191 ID 192 = { $$ = $1; } | 193 NUMBER 194 = { 195 char buf[80]; --- 10 unchanged lines hidden (view full) --- 206Mkopt_list: 207 Mkopt_list COMMA Mkoption 208 | 209 Mkoption 210 ; 211 212Mkoption: 213 Save_id EQUALS Opt_value | 186 } ; 187 188Opt_value: 189 ID 190 = { $$ = $1; } | 191 NUMBER 192 = { 193 char buf[80]; --- 10 unchanged lines hidden (view full) --- 204Mkopt_list: 205 Mkopt_list COMMA Mkoption 206 | 207 Mkoption 208 ; 209 210Mkoption: 211 Save_id EQUALS Opt_value |
214 = { 215 struct opt *op = (struct opt *)malloc(sizeof (struct opt)); 216 memset(op, 0, sizeof(*op)); 217 op->op_name = $1; 218 op->op_value = $3; 219 op->op_next = mkopt; 220 mkopt = op; 221 } ; | 212 = { newopt(&mkopt, $1, $3); } ; |
222 223Dev: 224 ID 225 = { $$ = $1; } 226 ; 227 228Device_spec: 229 DEVICE Dev 230 = { | 213 214Dev: 215 ID 216 = { $$ = $1; } 217 ; 218 219Device_spec: 220 DEVICE Dev 221 = { |
231 newopt(devopt($2), ns("1")); | 222 newopt(&opt, devopt($2), ns("1")); |
232 /* and the device part */ 233 newdev($2, UNKNOWN); 234 } | 235 DEVICE Dev NUMBER 236 = { | 223 /* and the device part */ 224 newdev($2, UNKNOWN); 225 } | 226 DEVICE Dev NUMBER 227 = { |
237 newopt(devopt($2), ns("1")); | 228 newopt(&opt, devopt($2), ns("1")); |
238 /* and the device part */ 239 newdev($2, $3); 240 if ($3 == 0) 241 errx(1, "line %d: devices with zero units are not likely to be correct", yyline); 242 } ; 243 244%% 245 --- 20 unchanged lines hidden (view full) --- 266 if (curp == 0) 267 dtab = np; 268 else 269 curp->d_next = np; 270 curp = np; 271} 272 273static void | 229 /* and the device part */ 230 newdev($2, $3); 231 if ($3 == 0) 232 errx(1, "line %d: devices with zero units are not likely to be correct", yyline); 233 } ; 234 235%% 236 --- 20 unchanged lines hidden (view full) --- 257 if (curp == 0) 258 dtab = np; 259 else 260 curp->d_next = np; 261 curp = np; 262} 263 264static void |
274newopt(char *name, char *value) | 265newopt(struct opt **list, char *name, char *value) |
275{ 276 struct opt *op; 277 278 op = (struct opt *)malloc(sizeof (struct opt)); 279 memset(op, 0, sizeof(*op)); 280 op->op_name = name; 281 op->op_ownfile = 0; 282 op->op_value = value; | 266{ 267 struct opt *op; 268 269 op = (struct opt *)malloc(sizeof (struct opt)); 270 memset(op, 0, sizeof(*op)); 271 op->op_name = name; 272 op->op_ownfile = 0; 273 op->op_value = value; |
283 op->op_next = opt; 284 opt = op; | 274 op->op_next = *list; 275 *list = op; |
285} | 276} |