BSD 4_3_Net_2 release
[unix-history] / usr / src / usr.bin / pascal / pdx / command / token.l
index da0b23e..e59731a 100644 (file)
@@ -1,13 +1,40 @@
 %{
 %{
-/*
- * Copyright (c) 1982 Regents of the University of California.
- * All rights reserved.  The Berkeley software License Agreement
- * specifies the terms and conditions for redistribution.
+/*-
+ * Copyright (c) 1982 The Regents of the University of California.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *     This product includes software developed by the University of
+ *     California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
  */
 
 #ifndef lint
  */
 
 #ifndef lint
-static char sccsid[] = "@(#)token.l    5.2 (Berkeley) %G%";
-#endif not lint
+static char sccsid[] = "@(#)token.l    5.4 (Berkeley) 4/16/91";
+#endif /* not lint */
 
 /*
  * Token definitions for pdx scanner.
 
 /*
  * Token definitions for pdx scanner.
@@ -24,20 +51,21 @@ static char sccsid[] = "@(#)token.l 5.2 (Berkeley) %G%";
 
 char *initfile = ".pdxinit";
 
 
 char *initfile = ".pdxinit";
 
-/*
- * This is a silly "lex" thing.
- */
-
-#define yywrap()       (1)
-
-/*
- * Override Lex default input macros.
- */
-
-#undef  input
-#undef  unput
-
-#define unput(c)       ungetc(c, yyin)
+/* override Lex default input macro. */
+LOCAL int pdxinput();
+
+#undef  YY_INPUT
+#define YY_INPUT(buf,result,max_size)  \
+       {                               \
+       int c = pdxinput();             \
+       if ( c == EOF )                 \
+               result = YY_NULL;       \
+       else                            \
+               {                       \
+               buf[0] = c;             \
+               result = 1;             \
+               }                       \
+       }
 
 %}
 
 
 %}
 
@@ -51,12 +79,11 @@ e           (("e"|"E")("+"|"-")?{n})
 alphanum       [a-zA-Z0-9]
 ident          {alpha}{alphanum}*
 filenm         [^ \t\n"<>!*"]+
 alphanum       [a-zA-Z0-9]
 ident          {alpha}{alphanum}*
 filenm         [^ \t\n"<>!*"]+
-qfilenm                {filenm}/":"
 string         '[^']+'('[^']*')*
 newline                "\n"
 char           .
 
 string         '[^']+'('[^']*')*
 newline                "\n"
 char           .
 
-%Start file sh
+%Start File sh
 
 %%
 
 
 %%
 
@@ -64,8 +91,8 @@ char          .
 ^sh{white}.*$  { BEGIN 0; yylval.y_string = &yytext[3]; return(SH); }
 ^sh            { BEGIN 0; yylval.y_string = NIL; return(SH); }
 ^{ident}       { return(findcmd(yytext)); }
 ^sh{white}.*$  { BEGIN 0; yylval.y_string = &yytext[3]; return(SH); }
 ^sh            { BEGIN 0; yylval.y_string = NIL; return(SH); }
 ^{ident}       { return(findcmd(yytext)); }
-<file>{filenm} { yylval.y_string = strdup(yytext); return(FILENAME); }
-{qfilenm}      { yylval.y_string = strdup(yytext); return(FILENAME); }
+<File>{filenm} { yylval.y_string = strdup(yytext); return(FILENAME); }
+{filenm}/":"   { yylval.y_string = strdup(yytext); return(FILENAME); }
 {n}?\.{n}{e}?  { yylval.y_real = atof(yytext); return(REAL); }
 0{n}           { yylval.y_long = octal(yytext); return(INT); }
 0x{h}          { yylval.y_long = hex(yytext); return(INT); }
 {n}?\.{n}{e}?  { yylval.y_real = atof(yytext); return(REAL); }
 0{n}           { yylval.y_long = octal(yytext); return(INT); }
 0x{h}          { yylval.y_long = hex(yytext); return(INT); }
@@ -103,7 +130,7 @@ char *s;
                case RUN:
                case SOURCE:
                case STATUS:
                case RUN:
                case SOURCE:
                case STATUS:
-                       BEGIN file;
+                       BEGIN File;
                        break;
 
                default:
                        break;
 
                default:
@@ -306,7 +333,7 @@ BOOLEAN isstdin()
        return((BOOLEAN) (yyin == stdin));
 }
 
        return((BOOLEAN) (yyin == stdin));
 }
 
-LOCAL int input()
+LOCAL int pdxinput()
 {
        register int c;
 
 {
        register int c;