=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/lex/yylex.c,v retrieving revision 1.5 retrieving revision 1.6 diff -c -r1.5 -r1.6 *** src/usr.bin/lex/yylex.c 2003/06/04 17:34:44 1.5 --- src/usr.bin/lex/yylex.c 2015/11/19 19:43:40 1.6 *************** *** 1,40 **** ! /* $OpenBSD: yylex.c,v 1.5 2003/06/04 17:34:44 millert Exp $ */ /* yylex - scanner front-end for flex */ ! /*- ! * Copyright (c) 1990 The Regents of the University of California. ! * All rights reserved. ! * ! * This code is derived from software contributed to Berkeley by ! * Vern Paxson. ! * ! * The United States Government has rights in this work pursuant ! * to contract no. DE-AC03-76SF00098 between the United States ! * Department of Energy and the University of California. ! * ! * 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. ! * ! * 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 ``AS IS'' AND WITHOUT ANY EXPRESS OR ! * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED ! * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR ! * PURPOSE. ! */ ! /* $Header: /cvsrepo/anoncvs/cvs/src/usr.bin/lex/yylex.c,v 1.5 2003/06/04 17:34:44 millert Exp $ */ #include #include "flexdef.h" #include "parse.h" --- 1,38 ---- ! /* $OpenBSD: yylex.c,v 1.6 2015/11/19 19:43:40 tedu Exp $ */ /* yylex - scanner front-end for flex */ ! /* Copyright (c) 1990 The Regents of the University of California. */ ! /* All rights reserved. */ ! /* This code is derived from software contributed to Berkeley by */ ! /* Vern Paxson. */ + /* The United States Government has rights in this work pursuant */ + /* to contract no. DE-AC03-76SF00098 between the United States */ + /* Department of Energy and the University of California. */ + + /* This file is part of flex. */ + + /* 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. */ + + /* 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 ``AS IS'' AND WITHOUT ANY EXPRESS OR */ + /* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED */ + /* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR */ + /* PURPOSE. */ + #include #include "flexdef.h" #include "parse.h" *************** *** 42,83 **** /* yylex - scan for a regular expression token */ ! int yylex() ! { ! int toktype; static int beglin = false; extern char *yytext; ! if ( eofseen ) toktype = EOF; else ! toktype = flexscan(); ! if ( toktype == EOF || toktype == 0 ) ! { eofseen = 1; ! if ( sectnum == 1 ) ! { ! synerr( _( "premature EOF" ) ); sectnum = 2; toktype = SECTEND; ! } else toktype = 0; ! } ! if ( trace ) ! { ! if ( beglin ) ! { ! fprintf( stderr, "%d\t", num_rules + 1 ); beglin = 0; ! } ! switch ( toktype ) ! { case '<': case '>': case '^': --- 40,133 ---- /* yylex - scan for a regular expression token */ ! int yylex () ! { ! int toktype; static int beglin = false; extern char *yytext; ! if (eofseen) toktype = EOF; else ! toktype = flexscan (); ! if (toktype == EOF || toktype == 0) { eofseen = 1; ! if (sectnum == 1) { ! synerr (_("premature EOF")); sectnum = 2; toktype = SECTEND; ! } else toktype = 0; ! } ! if (trace) { ! if (beglin) { ! fprintf (stderr, "%d\t", num_rules + 1); beglin = 0; ! } ! switch (toktype) { ! case '<': ! case '>': ! case '^': ! case '$': ! case '"': ! case '[': ! case ']': ! case '{': ! case '}': ! case '|': ! case '(': ! case ')': ! case '-': ! case '/': ! case '\\': ! case '?': ! case '.': ! case '*': ! case '+': ! case ',': ! (void) putc (toktype, stderr); ! break; ! ! case '\n': ! (void) putc ('\n', stderr); ! ! if (sectnum == 2) ! beglin = 1; ! ! break; ! ! case SCDECL: ! fputs ("%s", stderr); ! break; ! ! case XSCDECL: ! fputs ("%x", stderr); ! break; ! ! case SECTEND: ! fputs ("%%\n", stderr); ! ! /* We set beglin to be true so we'll start ! * writing out numbers as we echo rules. ! * flexscan() has already assigned sectnum. ! */ ! if (sectnum == 2) ! beglin = 1; ! ! break; ! ! case NAME: ! fprintf (stderr, "'%s'", nmstr); ! break; ! ! case CHAR: ! switch (yylval) { case '<': case '>': case '^': *************** *** 98,223 **** case '*': case '+': case ',': ! (void) putc( toktype, stderr ); break; ! case '\n': ! (void) putc( '\n', stderr ); ! ! if ( sectnum == 2 ) ! beglin = 1; ! break; ! case SCDECL: ! fputs( "%s", stderr ); ! break; ! case XSCDECL: ! fputs( "%x", stderr ); ! break; ! case SECTEND: ! fputs( "%%\n", stderr ); ! /* We set beglin to be true so we'll start ! * writing out numbers as we echo rules. ! * flexscan() has already assigned sectnum. ! */ ! if ( sectnum == 2 ) ! beglin = 1; ! break; ! case NAME: ! fprintf( stderr, "'%s'", nmstr ); ! break; ! case CHAR: ! switch ( yylval ) ! { ! case '<': ! case '>': ! case '^': ! case '$': ! case '"': ! case '[': ! case ']': ! case '{': ! case '}': ! case '|': ! case '(': ! case ')': ! case '-': ! case '/': ! case '\\': ! case '?': ! case '.': ! case '*': ! case '+': ! case ',': ! fprintf( stderr, "\\%c", ! yylval ); ! break; ! default: ! if ( ! isascii( yylval ) || ! ! isprint( yylval ) ) ! fprintf( stderr, ! "\\%.3o", ! (unsigned int) yylval ); ! else ! (void) putc( yylval, ! stderr ); ! break; ! } ! ! break; ! ! case NUMBER: ! fprintf( stderr, "%d", yylval ); ! break; ! ! case PREVCCL: ! fprintf( stderr, "[%d]", yylval ); ! break; ! ! case EOF_OP: ! fprintf( stderr, "<>" ); ! break; ! ! case OPTION_OP: ! fprintf( stderr, "%s ", yytext ); ! break; ! ! case OPT_OUTFILE: ! case OPT_PREFIX: ! case CCE_ALNUM: ! case CCE_ALPHA: ! case CCE_BLANK: ! case CCE_CNTRL: ! case CCE_DIGIT: ! case CCE_GRAPH: ! case CCE_LOWER: ! case CCE_PRINT: ! case CCE_PUNCT: ! case CCE_SPACE: ! case CCE_UPPER: ! case CCE_XDIGIT: ! fprintf( stderr, "%s", yytext ); ! break; ! ! case 0: ! fprintf( stderr, _( "End Marker\n" ) ); ! break; ! ! default: ! fprintf( stderr, ! _( "*Something Weird* - tok: %d val: %d\n" ), ! toktype, yylval ); ! break; ! } } return toktype; ! } --- 148,213 ---- case '*': case '+': case ',': ! fprintf (stderr, "\\%c", yylval); break; ! default: ! if (!isascii (yylval) || !isprint (yylval)) ! fprintf (stderr, ! "\\%.3o", ! (unsigned int) yylval); ! else ! (void) putc (yylval, stderr); break; + } ! break; ! case NUMBER: ! fprintf (stderr, "%d", yylval); ! break; ! case PREVCCL: ! fprintf (stderr, "[%d]", yylval); ! break; ! case EOF_OP: ! fprintf (stderr, "<>"); ! break; ! case OPTION_OP: ! fprintf (stderr, "%s ", yytext); ! break; ! case OPT_OUTFILE: ! case OPT_PREFIX: ! case CCE_ALNUM: ! case CCE_ALPHA: ! case CCE_BLANK: ! case CCE_CNTRL: ! case CCE_DIGIT: ! case CCE_GRAPH: ! case CCE_LOWER: ! case CCE_PRINT: ! case CCE_PUNCT: ! case CCE_SPACE: ! case CCE_UPPER: ! case CCE_XDIGIT: ! fprintf (stderr, "%s", yytext); ! break; ! case 0: ! fprintf (stderr, _("End Marker\n")); ! break; ! default: ! fprintf (stderr, ! _ ! ("*Something Weird* - tok: %d val: %d\n"), ! toktype, yylval); ! break; } + } return toktype; ! }