X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=pppd%2Fscanner.l;fp=pppd%2Fscanner.l;h=0000000000000000000000000000000000000000;hb=4b66bba66f111bdd72ae3f9ac99b88e023090ffa;hp=64ffd347eff34007ec48a93d7746e416d2827e8c;hpb=ca3cca0c7b8125832841f9f8e3183002e411168b;p=ppp.git diff --git a/pppd/scanner.l b/pppd/scanner.l deleted file mode 100644 index 64ffd34..0000000 --- a/pppd/scanner.l +++ /dev/null @@ -1,173 +0,0 @@ -%{ -/* From NetBSD: scanner.l,v 1.2 1995/03/06 11:39:12 mycroft Exp */ -/* From Header: scanner.l,v 1.40 94/06/10 17:21:44 mccanne Exp (LBL) */ - -/* - * Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994 - * 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: (1) source code distributions - * retain the above copyright notice and this paragraph in its entirety, (2) - * distributions including binary code include the above copyright notice and - * this paragraph in its entirety in the documentation or other materials - * provided with the distribution, and (3) all advertising materials mentioning - * features or use of this software display the following acknowledgement: - * ``This product includes software developed by the University of California, - * Lawrence Berkeley Laboratory and its contributors.'' 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. - */ - -#ifndef lint -static char rcsid[] = "$Id"; -#endif - -#include -#include - -#include - -#include -#include "pcap.h" -#include "pcap-namedb.h" - -#include "gencode.h" -#include "y.tab.h" - -#ifndef __GNUC__ -#define inline -#endif - -static int stoi(char *); -static inline int xdtoi(int); - -#ifndef FLEX_SCANNER -static char *in_buffer; - -#undef getc -#define getc(fp) (*in_buffer == 0 ? EOF : *in_buffer++) -#endif - -extern YYSTYPE yylval; - -%} - -N ([0-9]+|(0X|0x)[0-9A-Fa-f]+) -B ([0-9A-Fa-f][0-9A-Fa-f]?) - -%a 3000 - -%% -dst return DST; -src return SRC; - -link|ppp return LINK; -ip return IP; -tcp return TCP; -udp return UDP; -icmp return ICMP; - -host return HOST; -net return NET; -port return PORT; -proto return PROTO; - -less return LESS; -greater return GREATER; -byte return BYTE; -broadcast return TK_BROADCAST; -multicast return TK_MULTICAST; - -and|"&&" return AND; -or|"||" return OR; -not return '!'; - -len|length return LEN; -inbound return INBOUND; -outbound return OUTBOUND; - -[ \n\t] ; -[+\-*/:\[\]!<>()&|=] return yytext[0]; -">=" return GEQ; -"<=" return LEQ; -"!=" return NEQ; -"==" return '='; -"<<" return LSH; -">>" return RSH; -{N} { yylval.i = stoi((char *)yytext); return NUM; } -({N}\.{N})|({N}\.{N}\.{N})|({N}\.{N}\.{N}\.{N}) { - yylval.s = sdup((char *)yytext); return HID; -} -[A-Za-z][-_.A-Za-z0-9]* { yylval.s = sdup((char *)yytext); return ID; } -"\\"[^ !()\n\t]+ { yylval.s = sdup((char *)yytext + 1); return ID; } -[^ \[\]\t\n\-_.A-Za-z0-9!<>()&|=]+ { bpf_error("illegal token: %s\n", yytext); } -. { bpf_error("illegal char '%c'", *yytext); } -%% -void -lex_init(buf) - char *buf; -{ -#ifdef FLEX_SCANNER - if (yy_current_buffer) - yy_delete_buffer(yy_current_buffer); - yy_switch_to_buffer(yy_scan_string(buf)); -#else - in_buffer = buf; -#endif -} - -/* - * Also define a yywrap. Note that if we're using flex, it will - * define a macro to map this identifier to pcap_wrap. - */ -int -yywrap() -{ - return 1; -} - -/* Hex digit to integer. */ -static inline int -xdtoi(c) - register int c; -{ - if (isdigit(c)) - return c - '0'; - else if (islower(c)) - return c - 'a' + 10; - else - return c - 'A' + 10; -} - -/* - * Convert string to integer. Just like atoi(), but checks for - * preceding 0x or 0 and uses hex or octal instead of decimal. - */ -static int -stoi(s) - char *s; -{ - int base = 10; - int n = 0; - - if (*s == '0') { - if (s[1] == 'x' || s[1] == 'X') { - s += 2; - base = 16; - } - else { - base = 8; - s += 1; - } - } - while (*s) - n = n * base + xdtoi(*s++); - - return n; -} -