Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/usr.bin/config Sort definition/selection rules to clarify wh...
details: https://anonhg.NetBSD.org/src/rev/64abb8b962c5
branches: trunk
changeset: 332787:64abb8b962c5
user: uebayasi <uebayasi%NetBSD.org@localhost>
date: Thu Oct 09 09:39:24 2014 +0000
description:
Sort definition/selection rules to clarify which is which.
diffstat:
usr.bin/config/gram.y | 285 +++++++++++++++++++++++++++++++++++++------------
1 files changed, 214 insertions(+), 71 deletions(-)
diffs (truncated from 341 to 300 lines):
diff -r 4b0db953e9f9 -r 64abb8b962c5 usr.bin/config/gram.y
--- a/usr.bin/config/gram.y Thu Oct 09 07:43:55 2014 +0000
+++ b/usr.bin/config/gram.y Thu Oct 09 09:39:24 2014 +0000
@@ -1,5 +1,5 @@
%{
-/* $NetBSD: gram.y,v 1.40 2014/10/09 07:05:01 uebayasi Exp $ */
+/* $NetBSD: gram.y,v 1.41 2014/10/09 09:39:24 uebayasi Exp $ */
/*
* Copyright (c) 1992, 1993
@@ -307,46 +307,134 @@
/* A single definition. */
definition:
- file
- | object
- | device_major { do_devsw = 1; }
- | prefix
- | DEVCLASS WORD { (void)defattr($2, NULL, NULL, 1); }
- | DEFFS deffses optdepend_list { deffilesystem($2, $3); }
- | DEFINE WORD interface_opt depend_list
- { (void)defattr($2, $3, $4, 0); }
- | DEFOPT optfile_opt defopts optdepend_list
- { defoption($2, $3, $4); }
- | DEFFLAG optfile_opt defopts optdepend_list
- { defflag($2, $3, $4, 0); }
- | OBSOLETE DEFFLAG optfile_opt defopts
- { defflag($3, $4, NULL, 1); }
- | DEFPARAM optfile_opt defopts optdepend_list
- { defparam($2, $3, $4, 0); }
- | OBSOLETE DEFPARAM optfile_opt defopts
- { defparam($3, $4, NULL, 1); }
- | DEVICE devbase interface_opt depend_list
- { defdev($2, $3, $4, 0); }
- | ATTACH devbase AT atlist devattach_opt depend_list
- { defdevattach($5, $2, $4, $6); }
- | MAXPARTITIONS NUMBER { maxpartitions = $2.val; }
- | MAXUSERS NUMBER NUMBER NUMBER
- { setdefmaxusers($2.val, $3.val, $4.val); }
- | MAKEOPTIONS condmkopt_list
- /* interface_opt in DEFPSEUDO is for backwards compatibility */
- | DEFPSEUDO devbase interface_opt depend_list
- { defdev($2, $3, $4, 1); }
- | DEFPSEUDODEV devbase interface_opt depend_list
- { defdev($2, $3, $4, 2); }
- | MAJOR '{' majorlist '}'
- | VERSION NUMBER { setversion($2.val); }
+ define_file
+ | define_object
+ | define_device_major
+ | define_prefix
+ | define_devclass
+ | define_filesystems
+ | define_attribute
+ | define_option
+ | define_flag
+ | define_obsolete_flag
+ | define_param
+ | define_obsolete_param
+ | define_device
+ | define_device_attachment
+ | define_maxpartitions
+ | define_maxusers
+ | define_makeoptions
+ | define_pseudo
+ | define_pseudodev
+ | define_major
+ | define_version
;
/* source file: file foo/bar.c bar|baz needs-flag compile-with blah */
-file:
+define_file:
XFILE filename fopts fflags rule { addfile($2, $3, $4, $5); }
;
+/* object file: object zot.o foo|zot needs-flag */
+define_object:
+ XOBJECT filename fopts oflags { addobject($2, $3, $4); }
+;
+
+/* device major declaration */
+define_device_major:
+ DEVICE_MAJOR WORD device_major_char device_major_block fopts devnodes
+ {
+ adddevm($2, $3, $4, $5, $6);
+ do_devsw = 1;
+ }
+;
+
+/* prefix delimiter */
+define_prefix:
+ PREFIX filename { prefix_push($2); }
+ | PREFIX { prefix_pop(); }
+;
+
+define_devclass:
+ DEVCLASS WORD { (void)defattr($2, NULL, NULL, 1); }
+;
+
+define_filesystems:
+ DEFFS deffses optdepend_list { deffilesystem($2, $3); }
+;
+
+define_attribute:
+ DEFINE WORD interface_opt depend_list
+ { (void)defattr($2, $3, $4, 0); }
+;
+
+define_option:
+ DEFOPT optfile_opt defopts optdepend_list
+ { defoption($2, $3, $4); }
+;
+
+define_flag:
+ DEFFLAG optfile_opt defopts optdepend_list
+ { defflag($2, $3, $4, 0); }
+;
+
+define_obsolete_flag:
+ OBSOLETE DEFFLAG optfile_opt defopts
+ { defflag($3, $4, NULL, 1); }
+;
+
+define_param:
+ DEFPARAM optfile_opt defopts optdepend_list
+ { defparam($2, $3, $4, 0); }
+;
+
+define_obsolete_param:
+ OBSOLETE DEFPARAM optfile_opt defopts
+ { defparam($3, $4, NULL, 1); }
+;
+
+define_device:
+ DEVICE devbase interface_opt depend_list
+ { defdev($2, $3, $4, 0); }
+;
+
+define_device_attachment:
+ ATTACH devbase AT atlist devattach_opt depend_list
+ { defdevattach($5, $2, $4, $6); }
+;
+
+define_maxpartitions:
+ MAXPARTITIONS NUMBER { maxpartitions = $2.val; }
+;
+
+define_maxusers:
+ MAXUSERS NUMBER NUMBER NUMBER
+ { setdefmaxusers($2.val, $3.val, $4.val); }
+;
+
+define_makeoptions:
+ MAKEOPTIONS condmkopt_list
+;
+
+define_pseudo:
+ /* interface_opt in DEFPSEUDO is for backwards compatibility */
+ DEFPSEUDO devbase interface_opt depend_list
+ { defdev($2, $3, $4, 1); }
+;
+
+define_pseudodev:
+ DEFPSEUDODEV devbase interface_opt depend_list
+ { defdev($2, $3, $4, 2); }
+;
+
+define_major:
+ MAJOR '{' majorlist '}'
+;
+
+define_version:
+ VERSION NUMBER { setversion($2.val); }
+;
+
/* file options: optional expression of conditions */
fopts:
/* empty */ { $$ = NULL; }
@@ -371,11 +459,6 @@
| COMPILE_WITH stringvalue { $$ = $2; }
;
-/* object file: object zot.o foo|zot needs-flag */
-object:
- XOBJECT filename fopts oflags { addobject($2, $3, $4); }
-;
-
/* zero or more flags for an object file */
oflags:
/* empty */ { $$ = 0; }
@@ -387,12 +470,6 @@
NEEDS_FLAG { $$ = OI_NEEDSFLAG; }
;
-/* device major declaration */
-device_major:
- DEVICE_MAJOR WORD device_major_char device_major_block fopts devnodes
- { adddevm($2, $3, $4, $5, $6); }
-;
-
/* char 55 */
device_major_char:
/* empty */ { $$ = -1; }
@@ -435,12 +512,6 @@
LINKZERO { $$ = new_s("DEVNODE_FLAG_LINKZERO");}
;
-/* prefix delimiter */
-prefix:
- PREFIX filename { prefix_push($2); }
- | PREFIX { prefix_pop(); }
-;
-
/* one or more file system names */
deffses:
deffs { $$ = new_n($1); }
@@ -613,32 +684,104 @@
/* empty */
| selections '\n'
| selections selection '\n' { wrap_continue(); }
- | selections error '\n' { wrap_cleanup(); }
+ | selections error '\n' { wrap_cleanup(); }
;
/* One config item. */
selection:
definition
- | NO FILE_SYSTEM no_fs_list
- | FILE_SYSTEM fs_list
- | NO MAKEOPTIONS no_mkopt_list
- | MAKEOPTIONS mkopt_list
- | NO OPTIONS no_opt_list
- | OPTIONS opt_list
- | MAXUSERS NUMBER { setmaxusers($2.val); }
- | IDENT stringvalue { setident($2); }
- | NO IDENT { setident(NULL); }
- | CONFIG conf root_spec sysparam_list
+ | select_no_filesystems
+ | select_filesystems
+ | select_no_makeoptions
+ | select_makeoptions
+ | select_no_options
+ | select_options
+ | select_maxusers
+ | select_ident
+ | select_no_ident
+ | select_config
+ | select_no_config
+ | select_no_pseudodev
+ | select_pseudodev
+ | select_pseudoroot
+ | select_no_device_instance_attachment
+ | select_no_device_attachment
+ | select_no_device_instance
+ | select_device_instance
+;
+
+select_no_filesystems:
+ NO FILE_SYSTEM no_fs_list
+;
+
+select_filesystems:
+ FILE_SYSTEM fs_list
+;
+
+select_no_makeoptions:
+ NO MAKEOPTIONS no_mkopt_list
+;
+
+select_makeoptions:
+ MAKEOPTIONS mkopt_list
+;
+
+select_no_options:
+ NO OPTIONS no_opt_list
+;
+
+select_options:
+ OPTIONS opt_list
+;
+
+select_maxusers:
+ MAXUSERS NUMBER { setmaxusers($2.val); }
+;
+
+select_ident:
+ IDENT stringvalue { setident($2); }
+;
+
+select_no_ident:
+ NO IDENT { setident(NULL); }
+;
+
+select_config:
+ CONFIG conf root_spec sysparam_list
{ addconf(&conf); }
- | NO CONFIG WORD { delconf($3); }
- | NO PSEUDO_DEVICE WORD { delpseudo($3); }
- | PSEUDO_DEVICE WORD npseudo { addpseudo($2, $3); }
Home |
Main Index |
Thread Index |
Old Index