PREFIX only used in main.c
[unix-history] / usr / src / usr.sbin / config / lang.l
index 2efd8da..7ba8692 100644 (file)
@@ -1,5 +1,12 @@
 %{
 %{
-/*     lang.l  1.10    82/10/11        */
+
+/*
+ * Copyright (c) 1980 Regents of the University of California.
+ * All rights reserved.  The Berkeley software License Agreement
+ * specifies the terms and conditions for redistribution.
+ *
+ *     @(#)lang.l      5.3 (Berkeley) %G%
+ */
 
 #include <ctype.h>
 #include "y.tab.h"
 
 #include <ctype.h>
 #include "y.tab.h"
@@ -7,8 +14,6 @@
 
 #define tprintf if (do_trace) printf
 
 
 #define tprintf if (do_trace) printf
 
-int yylval;
-
 /*
  * Key word table
  */
 /*
  * Key word table
  */
@@ -17,14 +22,44 @@ struct kt {
        char *kt_name;
        int kt_val;
 } key_words[] = {
        char *kt_name;
        int kt_val;
 } key_words[] = {
-       "cpu", CPU, "ident", IDENT, "config", CONFIG, "options", OPTIONS,
-       "device", DEVICE, "controller", CONTROLLER, "uba", UBA, "mba", MBA,
-       "csr", CSR, "nexus", NEXUS, "drive", DRIVE, "vector", VECTOR,
-       "pseudo-device", PSEUDO_DEVICE, "flags", FLAGS, "trace", TRACE,
-       "disk", DISK, "tape", DEVICE, "slave", SLAVE, "at", AT,
-       "hz", HZ, "timezone", TIMEZONE, "dst", DST, "maxusers", MAXUSERS,
-       "master", MASTER,
-       0,0,
+       { "and",        AND },
+       { "args",       ARGS },
+       { "at",         AT },
+       { "config",     CONFIG },
+       { "controller", CONTROLLER },
+       { "cpu",        CPU },
+       { "csr",        CSR },
+       { "device",     DEVICE },
+       { "disk",       DISK },
+       { "drive",      DRIVE },
+       { "dst",        DST },
+       { "dumps",      DUMPS },
+       { "flags",      FLAGS },
+       { "hz",         HZ },
+       { "ident",      IDENT },
+       { "machine",    MACHINE },
+       { "major",      MAJOR },
+       { "makeoptions", MAKEOPTIONS },
+       { "master",     MASTER },
+       { "maxusers",   MAXUSERS },
+       { "mba",        MBA },
+       { "minor",      MINOR },
+       { "nexus",      NEXUS },
+       { "on",         ON },
+       { "options",    OPTIONS },
+       { "priority",   PRIORITY },
+       { "pseudo-device",PSEUDO_DEVICE },
+       { "root",       ROOT },
+       { "size",       SIZE },
+       { "slave",      SLAVE },
+       { "swap",       SWAP },
+       { "tape",       DEVICE },
+       { "timezone",   TIMEZONE },
+       { "trace",      TRACE },
+       { "uba",        UBA },
+       { "vba",        VBA },
+       { "vector",     VECTOR },
+       { 0, 0 },
 };
 %}
 WORD   [A-Za-z_][-A-Za-z_]*
 };
 %}
 WORD   [A-Za-z_][-A-Za-z_]*
@@ -34,7 +69,7 @@ WORD  [A-Za-z_][-A-Za-z_]*
 
                        if ((i = kw_lookup(yytext)) == -1)
                        {
 
                        if ((i = kw_lookup(yytext)) == -1)
                        {
-                               yylval = (int) yytext;
+                               yylval.str = yytext;
                                tprintf("id(%s) ", yytext);
                                return ID;
                        }
                                tprintf("id(%s) ", yytext);
                                return ID;
                        }
@@ -43,34 +78,34 @@ WORD        [A-Za-z_][-A-Za-z_]*
                }
 \"[^"]+\"      {
                        yytext[strlen(yytext)-1] = '\0';
                }
 \"[^"]+\"      {
                        yytext[strlen(yytext)-1] = '\0';
-                       yylval = (int) yytext + 1;
+                       yylval.str = yytext + 1;
                        return ID;
                }
 0[0-7]*                {
                        return ID;
                }
 0[0-7]*                {
-                       yylval = octal(yytext);
-                       tprintf("#O:%o ", yylval);
+                       yylval.val = octal(yytext);
+                       tprintf("#O:%o ", yylval.val);
                        return NUMBER;
                }
                        return NUMBER;
                }
-0x[0-9a-f]+    {
-                       yylval = hex(yytext);
-                       tprintf("#X:%x ", yylval);
+0x[0-9a-fA-F]+ {
+                       yylval.val = hex(yytext);
+                       tprintf("#X:%x ", yylval.val);
                        return NUMBER;
                }
 [1-9][0-9]*    {
                        return NUMBER;
                }
 [1-9][0-9]*    {
-                       yylval = atoi(yytext);
-                       tprintf("#D:%d ", yylval);
+                       yylval.val = atoi(yytext);
+                       tprintf("#D:%d ", yylval.val);
                        return NUMBER;
                }
 [0-9]"."[0-9]* {
                        return NUMBER;
                }
 [0-9]"."[0-9]* {
-                       float atof();
-                       yylval = (int) (60 * atof(yytext) + 0.5);
+                       double atof();
+                       yylval.val = (int) (60 * atof(yytext) + 0.5);
                        return FPNUMBER;
                }
 "-"            {
                        return MINUS;
                }
 "?"            {
                        return FPNUMBER;
                }
 "-"            {
                        return MINUS;
                }
 "?"            {
-                       yylval = -1;
+                       yylval.val = -1;
                        tprintf("? ");
                        return NUMBER;
                }
                        tprintf("? ");
                        return NUMBER;
                }
@@ -88,6 +123,7 @@ WORD [A-Za-z_][-A-Za-z_]*
 ";"            {       return SEMICOLON;               }
 ","            {       return COMMA;                   }
 "="            {       return EQUALS;                  }
 ";"            {       return SEMICOLON;               }
 ","            {       return COMMA;                   }
 "="            {       return EQUALS;                  }
+"@"            {       return AT;                      }
 .              {       return yytext[0];               }
 
 %%
 .              {       return yytext[0];               }
 
 %%
@@ -117,7 +153,7 @@ char *str;
 {
        int num;
 
 {
        int num;
 
-       sscanf(str, "%o", &num);
+       (void) sscanf(str, "%o", &num);
        return num;
 }
 
        return num;
 }
 
@@ -126,6 +162,6 @@ char *str;
 {
        int num;
 
 {
        int num;
 
-       sscanf(str+2, "%x", &num);
+       (void) sscanf(str+2, "%x", &num);
        return num;
 }
        return num;
 }