Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/usr.bin/config Simplify some things. Rename some productions...



details:   https://anonhg.NetBSD.org/src/rev/a08c60bb903e
branches:  trunk
changeset: 777963:a08c60bb903e
user:      dholland <dholland%NetBSD.org@localhost>
date:      Sun Mar 11 02:21:04 2012 +0000

description:
Simplify some things. Rename some productions for clarity.

diffstat:

 usr.bin/config/gram.y |  95 ++++++++++++++++++++------------------------------
 1 files changed, 38 insertions(+), 57 deletions(-)

diffs (200 lines):

diff -r 914ebc054b89 -r a08c60bb903e usr.bin/config/gram.y
--- a/usr.bin/config/gram.y     Sun Mar 11 02:16:55 2012 +0000
+++ b/usr.bin/config/gram.y     Sun Mar 11 02:21:04 2012 +0000
@@ -1,5 +1,5 @@
 %{
-/*     $NetBSD: gram.y,v 1.27 2012/03/11 01:09:42 dholland Exp $       */
+/*     $NetBSD: gram.y,v 1.28 2012/03/11 02:21:04 dholland Exp $       */
 
 /*
  * Copyright (c) 1992, 1993
@@ -135,7 +135,7 @@
 %type  <deva>  devattach_opt
 %type  <list>  atlist interface_opt
 %type  <str>   atname
-%type  <list>  loclist_opt loclist locdef
+%type  <list>  loclist locdef
 %type  <str>   locdefault
 %type  <list>  values locdefaults
 %type  <list>  attrs_opt attrs
@@ -146,7 +146,7 @@
 %type  <str>   value
 %type  <val>   major_minor npseudo
 %type  <num>   signed_number
-%type  <val>   flags_opt
+%type  <val>   device_flags
 %type  <str>   deffs
 %type  <list>  deffses
 %type  <list>  defopt
@@ -155,7 +155,7 @@
 %type  <list>  optdeps
 %type  <list>  defoptdeps
 %type  <str>   optfile_opt
-%type  <list>  subarches_opt subarches
+%type  <list>  subarches
 %type  <str>   filename stringvalue locname mkvarname
 %type  <val>   device_major_block device_major_char
 %type  <list>  devnodes devnodetype devnodeflags devnode_dims
@@ -193,11 +193,8 @@
  */
 
 /* Complete configuration. */
-Configuration:
-       topthings
-               machine_spec dev_defs ENDDEFS
-               { check_maxpart(); check_version(); }
-               specs
+configuration:
+       topthings machine_spec definition_part configuration_part
 ;
 
 /* Sequence of zero or more topthings. */
@@ -216,18 +213,13 @@
 /* "machine foo" from std.whatever */
 machine_spec:
          XMACHINE WORD '\n'                    { setmachine($2,NULL,NULL,0); }
-       | XMACHINE WORD WORD subarches_opt '\n' { setmachine($2,$3,$4,0); }
+       | XMACHINE WORD WORD '\n'               { setmachine($2,$3,NULL,0); }
+       | XMACHINE WORD WORD subarches '\n'     { setmachine($2,$3,$4,0); }
        | IOCONF WORD '\n'                      { setmachine($2,NULL,NULL,1); }
        | error { stop("cannot proceed without machine or ioconf specifier"); }
 ;
 
-/* Optional subarches. */
-subarches_opt:
-         /* empty */                   { $$ = NULL; }
-       | subarches
-;
-
-/* Subarches declaration. */
+/* One or more sub-arches. */
 subarches:
          WORD                          { $$ = new_n($1); }
        | subarches WORD                { $$ = new_nx($2, $1); }
@@ -367,21 +359,21 @@
  */
 
 /* Complete definition part: the contents of all files.* files. */
-dev_defs:
-         /* empty */
-       | dev_defs dev_def
-       | dev_defs ENDFILE              { enddefs(); checkfiles(); }
+definition_part:
+       definitions ENDDEFS             { check_maxpart(); check_version(); }
 ;
 
-/* A single definition, or a blank line. Trap errors. */
-dev_def:
-         '\n'
-       | one_def '\n'                  { adepth = 0; }
-       | error '\n'                    { cleanup(); }
+/* Zero or more definitions. Trap errors. */
+definitions:
+         /* empty */
+       | definitions '\n'
+       | definitions definition '\n'   { adepth = 0; }
+       | definitions error '\n'        { cleanup(); }
+       | definitions ENDFILE           { enddefs(); checkfiles(); }
 ;
 
 /* A single definition. */
-one_def:
+definition:
          file
        | object
        | device_major                  { do_devsw = 1; }
@@ -490,16 +482,11 @@
        | WITH WORD                     { $$ = getdevattach($2); }
 ;
 
-/* optional locator specification in braces */
+/* optional locator specification */
 interface_opt:
          /* empty */                   { $$ = NULL; }
-       | '{' loclist_opt '}'           { $$ = new_nx("", $2); }
-;
-
-/* optional locator specification without braces */
-loclist_opt:
-         /* empty */                   { $$ = NULL; }
-       | loclist                       { $$ = $1; }
+       | '{' '}'                       { $$ = new_nx("", NULL); }
+       | '{' loclist '}'               { $$ = new_nx("", $2); }
 ;
 
 /*
@@ -625,21 +612,21 @@
  */
 
 /* Complete configuration part: all std.* files plus selected config. */
-specs:
-         /* empty */
-       | specs spec
+configuration_part:
+       config_items
 ;
 
-/* One config item, or a blank line. Trap errors. */
-spec:
-         '\n'
-       | config_spec '\n'              { adepth = 0; }
-       | error '\n'                    { cleanup(); }
+/* Zero or more config items. Trap errors. */
+config_items:
+         /* empty */
+       | config_items '\n'
+       | config_items config_item '\n' { adepth = 0; }
+       | config_items error '\n'       { cleanup(); }
 ;
 
 /* One config item. */
-config_spec:
-         one_def
+config_item:
+         definition
        | NO FILE_SYSTEM no_fs_list
        | FILE_SYSTEM fs_list
        | NO MAKEOPTIONS no_mkopt_list
@@ -658,7 +645,7 @@
                                        { deldevi($2, $4); }
        | NO DEVICE AT attachment       { deldeva($4); }
        | NO device_instance            { deldev($2); }
-       | device_instance AT attachment locators flags_opt
+       | device_instance AT attachment locators device_flags
                                        { adddev($1, $3, $4, $5); }
 ;
 
@@ -761,20 +748,14 @@
 
 /* root fs specification */
 root_spec:
-       ROOT on_opt dev_spec fs_spec_opt
-                                       { setconf(&conf.cf_root, "root", $3); }
+         ROOT on_opt dev_spec          { setconf(&conf.cf_root, "root", $3); }
+       | ROOT on_opt dev_spec fs_spec  { setconf(&conf.cf_root, "root", $3); }
 ;
 
 /* filesystem type for root fs specification */
-fs_spec_opt:
-         /* empty */
-       | TYPE fs_spec                  { setfstype(&conf.cf_fstype, $2); }
-;
-
-/* filesystem name for root fs specification */
 fs_spec:
-         '?'                           { $$ = intern("?"); }
-       | WORD                          { $$ = $1; }
+         TYPE '?'                 { setfstype(&conf.cf_fstype, intern("?")); }
+       | TYPE WORD                     { setfstype(&conf.cf_fstype, $2); }
 ;
 
 /* zero or more additional system parameters */
@@ -838,7 +819,7 @@
 ;
 
 /* optional device flags */
-flags_opt:
+device_flags:
          /* empty */                   { $$ = 0; }
        | FLAGS NUMBER                  { $$ = $2.val; }
 ;



Home | Main Index | Thread Index | Old Index