1260+365表示把1260和635( )表示一种新的运算符号

01_C_C++_allCodes
C_C++_Codes
exercise.txt
person.dat
register.s
volatile.s
exercise.txt
exercise.txt
exercise.txt
exercise.txt
exercise.txt
exercise.txt
exercise.txt
exercise.txt
exercise.txt
exercise.txt
02_Linux_allCodes
stacall.txt
libdemo.so
libdemo.so
libdemo2.a
libdemo4.so
newstu.dat
result.txt
libpcap-1.0.0.zip
index.html
exam01.pro
libku.so.1
libku.so.1.0
libku.so.1.0.0
logindlg.o
dlglogin.o
thread.zip
moc_shake.o
moc_shthread.o
shthread.o
moc_mydialog.o
mydialog.o
moc_dlgjfq.o
bigmouthfish
moc_PaintWidget.o
PaintWidget.o
DemoPushButton.o
DemoWidget.o
Demo3Edit.o
Demo3Widget.o
moc_dlgyao.o
moc_thyao.o
chatClient
chatClient.o
chatClient.pro
ClientWindow.o
chatserver
chatServer.pro
libpcap-1.0.0.zip
day17_补课pcap
additional
additional.txt
additional.txt.bak
ARP数据报格式.doc
IP地址与路由.doc
IP数据报格式.doc
pcap_linktype.txt
TCP数据报格式.doc
UDP数据报格式.doc
以太网头部.txt
以太网帧格式.doc
网络层及其协议.doc
libpcap-1.0.0
StartupParameters.plist
makefile.dj
makefile.wc
readme.dos
pcap.spec.in
nit_if.o.sparc
nit_if.o.sun3
nit_if.o.sun4c.4.0.3c
libpcap.dsp
libpcap.dsw
aclocal.m4
bpf_dump.o
bpf_filter.o
bpf_image.o
config.guess
config.h.in
config.log
config.status
config.sub
configure.in
etherent.o
fad-getad.o
install-sh
INSTALL.txt
Makefile.in
nametoaddr.o
optimize.o
org.tcpdump.chmod_bpf.plist
pcap-config
pcap-config.1
pcap-config.in
pcap-filter.manmisc
pcap-filter.manmisc.in
pcap-linktype.manmisc
pcap-linktype.manmisc.in
pcap-linux.o
pcap-savefile.manfile
pcap-savefile.manfile.in
pcap-sita.html
pcap-usb-linux.o
pcap.3pcap
pcap.3pcap.in
pcap_activate.3pcap
pcap_breakloop.3pcap
pcap_can_set_rfmon.3pcap
pcap_close.3pcap
pcap_compile.3pcap
pcap_compile.3pcap.in
pcap_create.3pcap
pcap_datalink.3pcap
pcap_datalink.3pcap.in
pcap_datalink_name_to_val.3pcap
pcap_datalink_val_to_name.3pcap
pcap_dump.3pcap
pcap_dump_close.3pcap
pcap_dump_file.3pcap
pcap_dump_flush.3pcap
pcap_dump_ftell.3pcap
pcap_dump_open.3pcap
pcap_dump_open.3pcap.in
pcap_file.3pcap
pcap_fileno.3pcap
pcap_findalldevs.3pcap
pcap_freealldevs.3pcap
pcap_freecode.3pcap
pcap_free_datalinks.3pcap
pcap_geterr.3pcap
pcap_get_selectable_fd.3pcap
pcap_inject.3pcap
pcap_is_swapped.3pcap
pcap_lib_version.3pcap
pcap_list_datalinks.3pcap
pcap_list_datalinks.3pcap.in
pcap_lookupdev.3pcap
pcap_lookupnet.3pcap
pcap_loop.3pcap
pcap_major_version.3pcap
pcap_next_ex.3pcap
pcap_offline_filter.3pcap
pcap_open_dead.3pcap
pcap_open_dead.3pcap.in
pcap_open_live.3pcap
pcap_open_offline.3pcap
pcap_open_offline.3pcap.in
pcap_setdirection.3pcap
pcap_setfilter.3pcap
pcap_setnonblock.3pcap
pcap_set_buffer_size.3pcap
pcap_set_datalink.3pcap
pcap_set_promisc.3pcap
pcap_set_rfmon.3pcap
pcap_set_snaplen.3pcap
pcap_set_timeout.3pcap
pcap_snapshot.3pcap
pcap_stats.3pcap
pcap_statustostr.3pcap
pcap_strerror.3pcap
README.aix
README.dag
README.hpux
README.linux
README.macosx
README.septel
README.sita
README.tru64
README.Win32
savefile.o
libpcap-1.0.0.zip
项目说明:数据采集与整合.ppt
03_Oracle_ProC
desc表结构查看
01constantdefine.sql
02basicdatatypedefine.sql
03typedefine.sql
04recordtypedefine.sql
05rowtypedefine.sql
06tabletypedefine1.sql
07tabletypedefine2.sql
08tabletypedefine3.sql
09datacompute.sql
10conditioncontrol1.sql
11conditioncontrol2.sql
12conditioncontrol3.sql
13loopcontrol1.sql
14-1forcontrol.sql
14loopcontrol2.sql
15whilecontrol.sql
16setautocommitoff.sql
17setautocommiton.sql
18-1selectemp.sql
18-2deleteemp.sql
18-3rollbackemp.sql
19-1insertemp.sql
19-2createsavepoint.sql
19-3rollbacksavepoint.sql
20cursordefine.sql
21cursorfetch.sql
22isopenattribute.sql
23foundattribute.sql
24notfoundattribute.sql
25rowcountattribute.sql
26createprocedure.sql
27executeprocedure.sql
28createscottprocedure.sql
29executescottprocedure.sql
30wrongplsql.sql
31exceptiondefine.sql
32-1creategraduate.sql
32-2createresult.sql
32-3insertgraduate.sql
32-4creategraduateprocess.sql
32-5mainprocess.sql
32-6mainprocess1.sql
32-7mainprocess2.sql
correctplsql.sql
createsequence.sql
createsequencetable.sql
createtesttable.sql
grantrole.sql
insertsequencetable.sql
inserttesttable.sql
selectsequencetable.sql
selecttesttable.sql
SQL数据定义
01createdirector.sql
02createstudent.sql
03insertdirector.sql
04insertstudent.sql
05selectdirector.sql
06selectstudent.sql
07updatedirector.sql
08updatestudent.sql
09deletestudent.sql
10truncatedirector.sql
11dropdirector.sql
12createindex.sql
13createview.sql
14selectview.sql
15createcheck.sql
16testcheck.sql
disableconstraint.sql
selectrowid.sql
table41.sql
table42.sql
table41.sql
table42.sql
alterprofile.sql
alterrole.sql
alteruserprofile.sql
auditsession.sql
createprofile.sql
createrole.sql
createtempuser-1.sql
createtempuser-2.sql
createtempuser-3.sql
createtempuser.sql
dropprofile.sql
droprole.sql
droptempuser.sql
locktempuser.sql
passwordtempuser.sql
revokerole.sql
selectdbausers.sql
selectuserusers.sql
课堂演示代码
plsql结构.sql
函数_定义参数返回调用.sql
变量使用.sql
复合变量定义与使用_一维表记录集合.sql
复合变量定义与使用_一维集合.sql
复合变量定义与使用_字段类型.sql
复合变量定义与使用_用自定义的动态数组类型建表.sql
复合变量定义与使用_用自定义的动态数组类型查询表.sql
复合变量定义与使用_自定义的动态数组类型.sql
复合变量定义与使用_表记录类型.sql
复合变量定义与使用_记录类型.sql
复合变量定义与使用_集合操作.sql
存储过程_参数与返回值.sql
存储过程_语法.sql
存储过程_调用与删除.sql
存储过程_返回结果集.sql
异常处理_常见异常.sql
异常处理_扑捉异常.sql
异常处理_抛出异常.sql
控制语句_for.sql
控制语句_if.sql
控制语句_loop.sql
控制语句_while.sql
游标使用_found属性.sql
游标使用_isopen属性.sql
游标使用_rowcount属性.sql
游标使用_声明打开关闭游标.sql
游标使用_操作游标.sql
游标使用_操作游标与for.sql
运算符号.sql
预定义函数使用_其他函数.sql
预定义函数使用_字符函数.sql
预定义函数使用_数字函数.sql
预定义函数使用_日期函数.sql
预定义函数使用_聚合函数.sql
预定义函数使用_转换函数.sql
day17.txt.bak
import9.par
louisdb.dmp
oracle函数.txt
Oracle数据导入导出.doc
Oracle数据导入导出.docx
sqlplus的使用.txt
SQL_Plus.ppt
SQL_Plus2.ppt
sql_plus的几点补充.ppt
导出建表语句.txt
数据库开发.ppt
ansidsql.pc
blob_read.pc
blob_write.pc
oradsql_bind.pc
oradsql_bind_cursor.pc
oradsql_bind_select.pc
oradsql_select.pc
connect.pc
connect_type.pc
cursor_scroll.pc
cursor_update.pc
cursor_var.pc
dml_return.pc
dynimic_sql.pc
function.sql
hostarr.pc
hoststruct.pc
hostvar.pc
indxstruct.pc
ProC_Cplus编程(解密).docx
proc程序结构.jpg
select_hostvar.pc
select_indxvar.pc
sqlstate.pc
store_fun_pro.pc
transaction.pc
whenever.pc
desc表结构查看
01constantdefine.sql
02basicdatatypedefine.sql
03typedefine.sql
04recordtypedefine.sql
05rowtypedefine.sql
06tabletypedefine1.sql
07tabletypedefine2.sql
08tabletypedefine3.sql
09datacompute.sql
10conditioncontrol1.sql
11conditioncontrol2.sql
12conditioncontrol3.sql
13loopcontrol1.sql
14-1forcontrol.sql
14loopcontrol2.sql
15whilecontrol.sql
16setautocommitoff.sql
17setautocommiton.sql
18-1selectemp.sql
18-2deleteemp.sql
18-3rollbackemp.sql
19-1insertemp.sql
19-2createsavepoint.sql
19-3rollbacksavepoint.sql
20cursordefine.sql
21cursorfetch.sql
22isopenattribute.sql
23foundattribute.sql
24notfoundattribute.sql
25rowcountattribute.sql
26createprocedure.sql
27executeprocedure.sql
28createscottprocedure.sql
29executescottprocedure.sql
30wrongplsql.sql
31exceptiondefine.sql
32-1creategraduate.sql
32-2createresult.sql
32-3insertgraduate.sql
32-4creategraduateprocess.sql
32-5mainprocess.sql
32-6mainprocess1.sql
32-7mainprocess2.sql
correctplsql.sql
createsequence.sql
createsequencetable.sql
createtesttable.sql
grantrole.sql
insertsequencetable.sql
inserttesttable.sql
selectsequencetable.sql
selecttesttable.sql
SQL数据定义
01createdirector.sql
02createstudent.sql
03insertdirector.sql
04insertstudent.sql
05selectdirector.sql
06selectstudent.sql
07updatedirector.sql
08updatestudent.sql
09deletestudent.sql
10truncatedirector.sql
11dropdirector.sql
12createindex.sql
13createview.sql
14selectview.sql
15createcheck.sql
16testcheck.sql
disableconstraint.sql
selectrowid.sql
table41.sql
table42.sql
table41.sql
table42.sql
alterprofile.sql
alterrole.sql
alteruserprofile.sql
auditsession.sql
createprofile.sql
createrole.sql
createtempuser-1.sql
createtempuser-2.sql
createtempuser-3.sql
createtempuser.sql
dropprofile.sql
droprole.sql
droptempuser.sql
locktempuser.sql
passwordtempuser.sql
revokerole.sql
selectdbausers.sql
selectuserusers.sql
课堂演示代码
plsql结构.sql
函数_定义参数返回调用.sql
变量使用.sql
复合变量定义与使用_一维表记录集合.sql
复合变量定义与使用_一维集合.sql
复合变量定义与使用_字段类型.sql
复合变量定义与使用_用自定义的动态数组类型建表.sql
复合变量定义与使用_用自定义的动态数组类型查询表.sql
复合变量定义与使用_自定义的动态数组类型.sql
复合变量定义与使用_表记录类型.sql
复合变量定义与使用_记录类型.sql
复合变量定义与使用_集合操作.sql
存储过程_参数与返回值.sql
存储过程_语法.sql
存储过程_调用与删除.sql
存储过程_返回结果集.sql
异常处理_常见异常.sql
异常处理_扑捉异常.sql
异常处理_抛出异常.sql
控制语句_for.sql
控制语句_if.sql
控制语句_loop.sql
控制语句_while.sql
游标使用_found属性.sql
游标使用_isopen属性.sql
游标使用_rowcount属性.sql
游标使用_声明打开关闭游标.sql
游标使用_操作游标.sql
游标使用_操作游标与for.sql
运算符号.sql
预定义函数使用_其他函数.sql
预定义函数使用_字符函数.sql
预定义函数使用_数字函数.sql
预定义函数使用_日期函数.sql
预定义函数使用_聚合函数.sql
预定义函数使用_转换函数.sql
import9.par
louisdb.dmp
oracle函数.txt
Oracle数据导入导出.doc
Oracle数据导入导出.docx
sqlplus的使用.txt
SQL_Plus.ppt
SQL_Plus2.ppt
sql_plus的几点补充.ppt
SQL优化10原则.txt
SQL优化原理.txt
SQL优化规则.txt
union替换or优化的例子.txt
关联查询.txt
导出建表语句.txt
数据库优化.txt
数据库开发.ppt
日期格式.txt
日期格式.txt.bak
arrayquer.pc
structquery.pc
arrayquer.pc
structquery.pc
whenever.pc
CodeFans.net.url
如何设置LINUX的共享内存.doc
04_DMS_allCodes
dmsclient.o
dmsconsole.o
dmslogread.o
dmslogsend.o
chatserver.mdl
dmsserver.doc
tcp-server.mdl
数据采集项目.txt
项目说明:数据采集与整合.ppt
day01_01.rar
day01_02.rar
day01_03.rar
day01_04.rar
day01_05.rar
day01_06.rar
day01_07.rar
day01_08.rar
day02_01.rar
day02_02.rar
day02_03.rar
day02_04.rar
day02_05.rar
day03_02.rar
day03_03.rar
day03_04.rar
day03_05.rar
day03_06.rar
day03_07.rar
day03_08.rar
day04_01.rar
day04_02.rar
day04_03.rar
day04_04.rar
day04_05.rar
day05_01.rar
day05_02.rar
day05_03.rar
day05_04.rar
day05_05.rar
day05_06.rar
day06_01.rar
day06_02.rar
day06_03.rar
day06_04.rar
day06_05.rar
day06_06.rar
day06_07.rar
day06_08.rar
day07_01.rar
day07_02.rar
day07_03.rar
day07_04.rar
day07_05.rar
day07_06.rar
day07_07.rar
day07_08.rar
day08_01.rar
day08_02.rar
day08_03.rar
day08_04.rar
day08_05.rar
day08_06.rar
day08_07.rar
day08_08.rar
day09_01.rar
day09_02.rar
day09_03.rar
day09_04.rar
day09_05.rar
day09_06.rar
day09_07.rar
day09_08.rar
day10_01.rar
day10_02.rar
day10_03.rar
day10_04.rar
day10_05.rar
day10_06.rar
day10_07.rar
day10_08.rar
day11_01.rar
day11_02.rar
day11_03.rar
day11_04.rar
day11_05.rar
day11_06.rar
day11_07.rar
day11_08.rar
day13_01.rar
day13_02.rar
day13_03.rar
day13_04.rar
day13_05.rar
day14_01.rar
day14_02.rar
day14_03.rar
day14_04.rar
day14_05.rar
day14_06.rar
CriticalSection
CriticalSection.dsp
CriticalSection.plg
ReadMe.txt
ReadMe.txt
InterLock.dsp
InterLock.plg
ReadMe.txt
ReadMe.txt
ReadMe.txt
Semaphore.dsp
Semaphore.plg
ReadMe.txt
ThreadTls.dsp
ThreadTls.plg
WaitableTimer
ReadMe.txt
WaitableTimer.dsp
WaitableTimer.plg
WinSync.dsw
WinSync.ncb
WinSync.opt
dat15_01.rar
day05_05.rar
day15_02.rar
day15_03.rar
day15_04.rar
day15_06.rar
day15_07.rar
codes_01.rar
codes_02.rar
codes_03.rar
CodeFans.net.url
CodeFans.net.url
day01_01.rar
day01_02.rar
day01_03.rar
day01_04.rar
day02_01.rar
day02_02.rar
day02_03.rar
day02_04.rar
day02_05.rar
day03_01.rar
day03_02.rar
day03_03.rar
day03_04.rar
day03_05.rar
day03_06.rar
day04_01.rar
day04_02.rar
day04_03.rar
day04_04.rar
day04_05.rar
day04_06.rar
day04_07.rar
day05_01.rar
day05_02.rar
day05_03.rar
day05_04.rar
day05_05.rar
day05_06.rar
day06_01.rar
day06_02.rar
day06_03.rar
day06_04.rar
day06_05.rar
day06_06.rar
CodeFans.net.url
day07_01.rar
day07_02.rar
day07_03.rar
day07_04.rar
day07_05.rar
day08_01.rar
day08_02.rar
day08_03.rar
day08_04.rar
MFCSerilize2
MFCSerilize2.dsp
MFCSerilize2.plg
ReadMe.txt
MFCFile.dsw
MFCFile.ncb
MFCFile.opt
day09_01.rar
day09_02.rar
day09_03.rar
day09_04.rar
day09_05.rar
mydraw.txt
src_04.rar
day10_01.rar
day10_02.rar
day10_03.rar
day10_04.rar
day10_05.rar
day10_06.rar
day10_07.rar
day10_08.rar
day11_01.rar
day11_02.rar
day11_03.rar
day11_04.rar
day11_05.rar
mydraw.txt
src_06.rar
day12_01.rar
day12_02.rar
day12_03.rar
day12_04.rar
day12_05.rar
day13_01.rar
day13_02.rar
day13_03.rar
day13_04.rar
day13_05.rar
day15_16.txt
mydraw.txt
src_01.rar
src_02.rar
src_03.rar
src_04.rar
src_05.rar
src_06.rar
VC显示行号VC6LineNumberAddin.rar
WndTabs320.zip
#define yy_create_buffer pcap__create_buffer
#define yy_delete_buffer pcap__delete_buffer
#define yy_scan_buffer pcap__scan_buffer
#define yy_scan_string pcap__scan_string
#define yy_scan_bytes pcap__scan_bytes
#define yy_flex_debug pcap__flex_debug
#define yy_init_buffer pcap__init_buffer
#define yy_flush_buffer pcap__flush_buffer
#define yy_load_buffer_state pcap__load_buffer_state
#define yy_switch_to_buffer pcap__switch_to_buffer
#define yyin pcap_in
#define yyleng pcap_leng
#define yylex pcap_lex
#define yyout pcap_out
#define yyrestart pcap_restart
#define yytext pcap_text
#define yywrap pcap_wrap
#line 20 &scanner.c&
/* A lexical scanner generated by flex*/
/* Scanner skeleton version:
* $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $
#define FLEX_SCANNER
#define YY_FLEX_MAJOR_VERSION 2
#define YY_FLEX_MINOR_VERSION 5
#include &stdio.h&
#include &unistd.h&
/* cfront 1.2 defines &c_plusplus& instead of &__cplusplus& */
#ifdef c_plusplus
#ifndef __cplusplus
#define __cplusplus
#ifdef __cplusplus
#include &stdlib.h&
/* Use prototypes in function declarations. */
#define YY_USE_PROTOS
/* The &const& storage-class-modifier is valid. */
#define YY_USE_CONST
#else /* ! __cplusplus */
#if __STDC__
#define YY_USE_PROTOS
#define YY_USE_CONST
#endif /* __STDC__ */
#endif /* ! __cplusplus */
#ifdef __TURBOC__
#pragma warn -rch
#pragma warn -use
#include &io.h&
#include &stdlib.h&
#define YY_USE_CONST
#define YY_USE_PROTOS
#ifdef YY_USE_CONST
#define yyconst const
#define yyconst
#ifdef YY_USE_PROTOS
#define YY_PROTO(proto) proto
#define YY_PROTO(proto) ()
/* Returned upon end-of-file. */
#define YY_NULL 0
/* Promotes a possibly negative, possibly signed char to an unsigned
* integer for use as an array index.
If the signed char is negative,
* we want to instead treat it as an 8-bit unsigned char, hence the
* double cast.
#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
/* Enter a start condition.
This macro really ought to take a parameter,
* but we do it the disgusting crufty way forced on us by the ()-less
* definition of BEGIN.
#define BEGIN yy_start = 1 + 2 *
/* Translate the current start state into a value that can be later handed
* to BEGIN to return to the state.
The YYSTATE alias is for lex
* compatibility.
#define YY_START ((yy_start - 1) / 2)
#define YYSTATE YY_START
/* Action number for EOF rule of a given start state. */
#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
/* Special action meaning &start processing a new file&. */
#define YY_NEW_FILE yyrestart( yyin )
#define YY_END_OF_BUFFER_CHAR 0
/* Size of default input buffer. */
#define YY_BUF_SIZE 16384
typedef struct yy_buffer_state *YY_BUFFER_STATE;
extern FILE *yyin, *
#define EOB_ACT_CONTINUE_SCAN 0
#define EOB_ACT_END_OF_FILE 1
#define EOB_ACT_LAST_MATCH 2
/* The funky do-while in the following #define is used to turn the definition
* int a single C statement (which needs a semi-colon terminator).
* avoids problems with code like:
if ( condition_holds )
yyless( 5 );
do_something_else();
* Prior to using the do-while the compiler would get upset at the
* &else& because it interpreted the &if& statement as being all
* done when it reached the ';' after the yyless() call.
/* Return all but the first 'n' matched characters back to the input stream. */
#define yyless(n) \
/* Undo effects of setting up yytext. */ \
*yy_cp = yy_hold_ \
YY_RESTORE_YY_MORE_OFFSET \
yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
YY_DO_BEFORE_ACTION; /* set up yytext again */ \
while ( 0 )
#define unput(c) yyunput( c, yytext_ptr )
/* Some routines like yy_flex_realloc() are emitted as static but are
not called by all lexers. This generates warnings in some compilers,
notably GCC. Arrange to suppress these. */
#ifdef __GNUC__
#define YY_MAY_BE_UNUSED __attribute__((unused))
#define YY_MAY_BE_UNUSED
/* The following is because we cannot portably get our hands on size_t
* (without autoconf's help, which isn't available because we want
* flex-generated scanners to compile on their own).
typedef unsigned int yy_size_t;
struct yy_buffer_state
FILE *yy_input_
char *yy_ch_
/* input buffer */
char *yy_buf_
/* current position in input buffer */
/* Size of input buffer in bytes, not including room for EOB
* characters.
yy_size_t yy_buf_
/* Number of characters read into yy_ch_buf, not including EOB
* characters.
/* Whether we &own& the buffer - i.e., we know we created it,
* and can realloc() it to grow it, and should free() it to
* delete it.
int yy_is_our_
/* Whether this is an &interactive& if so, and
* if we're using stdio for input, then we want to use getc()
* instead of fread(), to make sure we stop fetching input after
* each newline.
int yy_is_
/* Whether we're considered to be at the beginning of a line.
* If so, '^' rules will be active on the next match, otherwise
int yy_at_
/* Whether to try to fill the input buffer when we reach the
* end of it.
int yy_fill_
int yy_buffer_
#define YY_BUFFER_NEW 0
#define YY_BUFFER_NORMAL 1
/* When an EOF's been seen but there's still some text to process
* then we mark the buffer as YY_EOF_PENDING, to indicate that we
* shouldn't try reading from the input source any more.
* still have a bunch of tokens to match, though, because of
* possible backing-up.
* When we actually see the EOF, we change the status to &new&
* (via yyrestart()), so that the user can continue scanning by
* just pointing yyin at a new input file.
#define YY_BUFFER_EOF_PENDING 2
static YY_BUFFER_STATE yy_current_buffer = 0;
/* We provide macros for accessing buffer states in case in the
* future we want to put the buffer states in a more general
* &scanner state&.
#define YY_CURRENT_BUFFER yy_current_buffer
/* yy_hold_char holds the character lost when yytext is formed. */
static char yy_hold_
static int yy_n_
/* number of characters read into yy_ch_buf */
/* Points to current character in buffer. */
static char *yy_c_buf_p = (char *) 0;
static int yy_init = 1;
/* whether we need to initialize */
static int yy_start = 0; /* start state number */
/* Flag which is used to allow yywrap()'s to do buffer switches
* instead of setting up a fresh yyin.
A bit of a hack ...
static int yy_did_buffer_switch_on_
void yyrestart YY_PROTO(( FILE *input_file ));
void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
void yy_load_buffer_state YY_PROTO(( void ));
YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t )) YY_MAY_BE_UNUSED;
static void yy_flex_free YY_PROTO(( void * ));
#define yy_new_buffer yy_create_buffer
#define yy_set_interactive(is_interactive) \
if ( ! yy_current_buffer ) \
yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
yy_current_buffer-&yy_is_interactive = is_ \
#define yy_set_bol(at_bol) \
if ( ! yy_current_buffer ) \
yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
yy_current_buffer-&yy_at_bol = at_ \
#define YY_AT_BOL() (yy_current_buffer-&yy_at_bol)
typedef unsigned char YY_CHAR;
FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
typedef int yy_state_
extern char *
#define yytext_ptr yytext
static yy_state_type yy_get_previous_state YY_PROTO(( void ));
static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
static int yy_get_next_buffer YY_PROTO(( void ));
static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
/* Done after the current pattern has been matched and before the
* corresponding action - sets up yytext.
#define YY_DO_BEFORE_ACTION \
yytext_ptr = yy_ \
yyleng = (int) (yy_cp - yy_bp); \
yy_hold_char = *yy_ \
*yy_cp = '\0'; \
yy_c_buf_p = yy_
#define YY_NUM_RULES 144
#define YY_END_OF_BUFFER 145
static yyconst short int yy_accept[1434] =
static yyconst int yy_ec[256] =
static yyconst int yy_meta[54] =
static yyconst short int yy_base[1894] =
281, 7401,
0, , 3779,
117, , , , ,
81, , 3709,
167, , , , 3668,
0, , , 3633,
170, 3626,
202, 3609,
54, , 3606,
0, , , 3590,
554, 3611,
0, , , , 3546,
0, , , 3521,
0, , 3481,
254, 3440,
270, 3403,
618, 3405,
665, 3403,
696, 3394,
792, 3372,
0, , 3313,
595, 3287,
0, , 3278,
0, , 3264,
, , , 3218,
720, 3204,
953, 3200,
757, 1007,
408, , 1078,
0, , 1097,
159, 3054,
310, 1212,
345, , , 1348,
612, , 1413,
378, 2956,
306, , , 2950,
0, , 2905,
330, 2881,
0, , , , 2822,
0, , , , ,
409, , 2807,
766, 2783,
817, , 1865,
386, 2744,
0, , , , 1959,
467, , , , 2046,
457, 2697,
493, , , 2128,
494, 2677,
899, , 2193,
498, , , 2665,
499, , 1331,
532, , , 2650,
129, 2606,
591, , , ,
532, , , ,
523, 2516,
, , , 2604,
587, , , 2587,
680, , , 2585,
551, 1895,
808, 2083,
766, 2081,
833, 2926,
834, , , 2562,
742, 2557,
878, , , 2531,
881, , , , ,
900, , 2123,
902, 2495,
737, , 3364,
976, 1904,
977, 1453,
, , , , 3459,
937, , , 2348,
0, , 2891,
0, , , 2231,
0, , , , 2162,
0, , , , 1633,
, , , 1398,
0, , , , 4488,
, , , , 4459,
111, , 5671,
801, 1967,
0, , 1921,
0, , , , ,
static yyconst short int yy_def[1894] =
1, , , , ,
21, , , 1433,
21, , , 1433,
154, 1439,
150, 1440,
251, , 1433,
256, , 1433,
330, , , 1433,
, , , , 1433,
410, , 1433,
414, , , 1433,
420, , , , 1433,
428, 1465,
493, , , ,
574, , 1433,
578, 1487,
581, , , 1433,
594, , , 1497,
606, , 1433,
651, , , , ,
700, , , , , 1533,
722, 1533,
728, 1534,
738, 1538,
744, , , 1543,
751, , , , ,
763, , , ,
778, 1560,
, , , 1568,
812, , , , 1433,
, , , 1433,
894, , , 1433,
922, , , , 1618,
934, , , 1623,
, , , , 1433,
993, , , ,
0, , , , 1433,
static yyconst short int yy_nxt[7455] =
141, 1181,
127, 1341,
126, 1433,
260, 1433,
147, 1274,
148, 1433,
150, 1433,
153, 1433,
357, 1433,
433, 1433,
156, 1433,
543, 1024,
247, 1433,
248, , 1232,
508, 1433,
247, , 1234,
323, 1433,
795, 1433,
512, , 1248,
328, 1433,
801, , 1059,
342, 1181,
393, 1282,
396, 1433,
262, 1109,
348, 1433,
613, 1331,
796, 1354,
805, 1433,
402, 1366,
403, 1386,
404, , 1173,
422, 1433,
408, 1433,
409, 1433,
411, 1433,
415, 1206,
416, 1203,
684, 1200,
436, 1433,
440, 1433,
990, 1433,
451, 1433,
484, 1433,
489, , 1433,
492, 1209,
248, , 1433,
797, 1433,
680, 1274,
978, 1059,
499, 1433,
505, 1433,
422, 1209,
507, 1055,
498, 1047,
511, , 1433,
439, , 1433,
524, 1433,
837, 1031,
568, 1029,
837, 1184,
569, 1187,
570, , 1002,
569, 1433,
834, , 1008,
976, , 1015,
575, , 1247,
978, 1197,
422, 1111,
596, , 1209,
514, 1024,
422, 1035,
615, , , 1206,
619, 1415,
884, 1179,
645, , 1424,
843, 1181,
647, , 1424,
422, 1002,
652, 1026,
657, 1111,
422, 1092,
845, 1008,
659, 1433,
803, 1061,
855, 1433,
667, 1084,
668, 1008,
768, 1433,
855, 1433,
837, 1037,
833, 1433,
828, 1026,
686, 1017,
687, 1433,
874, 1008,
699, 1087,
973, 1433,
991, 1336,
725, 1191,
675, 1029,
712, 1029,
739, 1433,
656, 1433,
962, 1031,
538, 1042,
808, 1032,
530, 1042,
939, 1041,
823, 1044,
460, 1433,
688, , 1055,
458, , 1173,
830, 1433,
448, 1174,
831, , , , ,
817, 1176,
422, 1433,
413, 1176,
840, 1433,
840, , 1069,
390, 1220,
851, 1220,
379, 1433,
55, , 1116,
863, 1433,
55, , , , 1122,
876, 1411,
262, 1226,
878, 1433,
135, 1433,
320, 1233,
307, 1233,
895, , , , 1126,
, , , 1132,
296, 1232,
895, 1433,
282, 1433,
265, 1234,
904, 1235,
237, 1235,
230, 1234,
907, 1433,
215, 1433,
210, 1240,
910, 1241,
188, 1241,
45, , 1433,
850, , 1433,
948, 1433,
951, , , 1433,
862, , 1433,
422, , 1433,
967, 1433,
791, 1433,
975, , , 1433,
978, , 1433,
979, 1433,
980, 1433,
994, 1433,
995, , 1146,
832, , , , ,
, , , 1433,
837, 1001,
841, , , , 1003,
852, , , ,
, , , 1066,
860, , , , , 1433,
864, , , , , 1433,
999, , , ,
837, , , , , 1433,
860, , , , , 1433,
, , , 1433,
55, , , , ,
978, , , ,
571, , , ,
995, , , ,
, , , 1095,
999, , 1433,
921, , , , , 1433,
933, , 1433,
947, 1005,
948, , , 1358,
948, , , 1103,
964, , , 1358,
964, , , , ,
976, , 1177,
978, , , 1433,
, , , , 1362,
144, 1433,
352, 1433,
431, 1433,
519, 1433,
528, 1433,
600, 1433,
609, 1433,
528, 1433,
597, 1433,
600, 1433,
609, 1433,
691, 1433,
703, 1433,
757, 1433,
766, 1433,
769, 1433,
772, 1433,
781, 1433,
691, 1433,
693, 1433,
694, 1433,
703, 1433,
754, 1433,
757, 1433,
766, 1433,
772, 1433,
781, 1433,
865, 1433,
868, 1433,
871, 1433,
880, 1433,
925, 1433,
928, 1433,
937, 1433,
940, 1433,
943, 1433,
952, 1433,
953, 1433,
956, 1433,
968, 1433,
865, 1433,
871, 1433,
880, 1433,
919, , , ,
925, 1433,
931, 1034,
937, 1433,
940, 1433,
942, 1433,
943, 1433,
946, , , ,
952, 1433,
953, 1433,
956, 1433,
959, 1433,
968, 1433,
53, , 1091,
964, 1108,
, , , , 1079,
53, , , 1198,
53, , , , , 1277,
344, , , , , 1433,
53, , 1340,
, , , , 1381,
53, , , 1433,
3, , , , , 1433,
static yyconst short int yy_chk[7455] =
454, 1286,
486, 1298,
456, 1299,
520, 1304,
588, 1307,
622, 1308,
705, 1317,
733, 1322,
256, 1334,
318, 1350,
261, 1351,
719, 1376,
521, 1379,
708, 1390,
262, 1394,
714, 1398,
324, 1402,
725, 1406,
324, 1414,
324, 1423,
522, 1258,
640, 1254,
794, 1253,
835, 1246,
334, 1245,
810, 1238,
334, 1237,
338, 1230,
858, 1229,
806, 1223,
503, 1222,
907, 1218,
935, 1217,
966, 1216,
407, 1210,
709, 1012,
414, 1022,
603, 1195,
414, , 1022,
612, 1084,
420, 1165,
420, , 1161,
426, , 1097,
711, 1151,
987, 1094,
438, 1100,
990, 1143,
800, 1142,
697, , 1083,
485, 1083,
485, 1130,
697, 1033,
487, , 1129,
805, 1045,
491, 1057,
493, , , 1221,
497, , 1085,
748, 1085,
498, , , 1302,
504, , 1187,
505, 1188,
505, , , 1104,
513, , 1272,
513, , 1339,
514, , 1311,
523, , , 1244,
525, , 1079,
525, 1388,
755, 1075,
798, 1284,
798, , 1396,
567, , 1412,
755, 1333,
570, , 1412,
570, , , 1067,
574, , 1023,
578, 1014,
759, 1009,
710, , 1000,
592, 1338,
775, 1338,
889, 1269,
889, 1269,
988, 1089,
645, 1089,
431, 1337,
728, 1337,
376, 1336,
961, 1336,
958, 1068,
365, 1068,
961, 1069,
970, 1069,
962, , 1073,
749, 1072,
344, 1069,
336, 1072,
751, 1073,
976, 1115,
316, 1115,
982, 1116,
763, 1115,
301, 1116,
982, , 1015,
778, 1122,
983, , , , ,
790, 1383,
263, 1126,
791, 1126,
807, 1134,
242, 1126,
236, 1134,
217, 1134,
809, , , , 1024,
, , , 1029,
203, 1135,
811, 1135,
181, 1135,
157, 1138,
817, 1138,
137, 1138,
130, 1139,
820, 1139,
118, 1139,
111, 1148,
823, 1148,
896, , 1041,
900, , , , , 1047,
903, , , , ,
906, , , , 1059,
909, 1086,
909, , , ,
914, 1153,
914, 1162,
915, 1162,
922, 1163,
922, , , , 1160,
932, 1167,
934, 1211,
949, 1212,
949, , , , 1179,
965, 1191,
965, 1259,
965, 1190,
0, , , , ,
978, 1263,
978, 1260,
995, , , ,
997, 1264,
999, 1288,
999, , , ,
0, , , , , 1002,
0, , , 1002,
0, , , , ,
, , , 1007,
0, , , 1007,
0, , , , 1232,
0, , , 1016,
, , , , 1025,
0, , , , ,
, , , 1048,
, , , , 1076,
, , , 1248,
0, , 1092,
0, , , , , 1250,
0, , , , 1096,
0, , , , ,
0, , , , 1303,
0, , , 1102,
0, , 1102,
0, , , 1105,
, , , , 1329,
0, , 1110,
, , , , 1140,
0, , , , ,
, , , 1168,
0, , , , 1192,
0, , , 1196,
0, , , , 1205,
0, , 1205,
0, , , , , 1213,
0, , , 1213,
0, , , , 1358,
0, , , , ,
, , , , 1446,
0, , , 1453,
0, , , , 1455,
0, , , 1465,
0, , , , 1471,
0, , 1480,
0, , , , 1483,
0, , , , 1486,
, , , 1492,
0, , 1497,
0, , , 1501,
0, , , , ,
, , , 1523,
0, , 1525,
0, , 1526,
0, , 1527,
0, , , 1529,
0, , , , ,
0, , 1534,
0, , 1543,
0, , 1546,
0, , 1547,
0, , , , 1551,
0, , 1554,
0, , 1555,
0, , 1556,
0, , 1559,
0, , , , 1584,
0, , , , ,
0, , 1594,
0, , 1595,
0, , 1596,
0, , 1599,
0, , 1602,
0, , , , ,
0, , , , ,
0, , 1615,
0, , 1616,
0, , , 1618,
, , , 1621,
0, , 1623,
0, , 1624,
0, , 1625,
0, , , 1627,
0, , , , ,
0, , 1634,
0, , , 1637,
0, , 1647,
0, , , , ,
0, , 1666,
, , , , 1676,
0, , 1687,
0, , 1688,
0, , , 1690,
, , , 1693,
0, , , , 1696,
0, , 1710,
0, , , 1714,
0, , 1718,
0, , , 1721,
0, , 1727,
0, , 1729,
0, , 1737,
0, , 1738,
0, , 1739,
0, , , , 1743,
0, , , 1749,
0, , , 1755,
0, , , 1759,
0, , , 1761,
0, , 1762,
0, , , , , 1768,
0, , , 1771,
0, , , , ,
0, , 1781,
0, , , , ,
0, , 1791,
0, , 1796,
0, , , 1799,
0, , 1802,
0, , , 1804,
0, , , , 1814,
0, , 1816,
0, , 1817,
0, , 1822,
0, , 1828,
0, , 1830,
0, , 1836,
0, , 1842,
0, , 1844,
0, , , 1851,
0, , 1853,
0, , 1860,
static yy_state_type yy_last_accepting_
static char *yy_last_accepting_
/* The intent behind this definition is that it'll catch
* any uses of REJECT which flex missed.
#define REJECT reject_used_but_not_detected
#define yymore() yymore_used_but_not_detected
#define YY_MORE_ADJ 0
#define YY_RESTORE_YY_MORE_OFFSET
#line 1 &scanner.l&
#define INITIAL 0
#line 2 &scanner.l&
* Copyright (c) , , , ,
* 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 const char rcsid[] _U_ =
&@(#) $Header: /tcpdump/master/libpcap/scanner.l,v 1.110.2.2
10:21:47 guy Exp $ (LBL)&;
#ifdef HAVE_CONFIG_H
#include &config.h&
#include &ctype.h&
#include &string.h&
#include &pcap-int.h&
#include &gencode.h&
#ifdef INET6
#ifdef WIN32
#include &pcap-stdinc.h&
#ifdef __MINGW32__
#include &IP6_misc.h&
#else /* WIN32 */
#include &sys/socket.h& /* for &struct sockaddr& in &struct addrinfo& */
#include &netdb.h& /* for &struct addrinfo& */
#endif /* WIN32 */
/* Workaround for AIX 4.3 */
#if !defined(AI_NUMERICHOST)
#define AI_NUMERICHOST 0x04
#endif /*INET6*/
#include &pcap/namedb.h&
#include &tokdefs.h&
#ifdef HAVE_OS_PROTO_H
#include &os-proto.h&
static int stoi(char *);
static inline int xdtoi(int);
#ifdef FLEX_SCANNER
#define YY_NO_UNPUT
static YY_BUFFER_STATE in_
static char *in_
#undef getc
#define getc(fp)
(*in_buffer == 0 ? EOF : *in_buffer++)
#define yylval pcap_lval
extern YYSTYPE
#line 2684 &scanner.c&
/* Macros after this point can all be overridden by user definitions in
* section 1.
#ifndef YY_SKIP_YYWRAP
#ifdef __cplusplus
extern &C& int yywrap YY_PROTO(( void ));
extern int yywrap YY_PROTO(( void ));
#ifndef YY_NO_UNPUT
static void yyunput YY_PROTO(( int c, char *buf_ptr ));
#ifndef yytext_ptr
static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
#ifdef YY_NEED_STRLEN
static int yy_flex_strlen YY_PROTO(( yyconst char * ));
#ifndef YY_NO_INPUT
#ifdef __cplusplus
static int yyinput YY_PROTO(( void ));
static int input YY_PROTO(( void ));
#if YY_STACK_USED
static int yy_start_stack_ptr = 0;
static int yy_start_stack_depth = 0;
static int *yy_start_stack = 0;
#ifndef YY_NO_PUSH_STATE
static void yy_push_state YY_PROTO(( int new_state ));
#ifndef YY_NO_POP_STATE
static void yy_pop_state YY_PROTO(( void ));
#ifndef YY_NO_TOP_STATE
static int yy_top_state YY_PROTO(( void ));
#define YY_NO_PUSH_STATE 1
#define YY_NO_POP_STATE 1
#define YY_NO_TOP_STATE 1
#ifdef YY_MALLOC_DECL
YY_MALLOC_DECL
#if __STDC__
#ifndef __cplusplus
#include &stdlib.h&
/* Just try to get by without declaring the routines.
This will fail
* miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
* or sizeof(void*) != sizeof(int).
/* Amount of stuff to slurp up with each read. */
#ifndef YY_READ_BUF_SIZE
#define YY_READ_BUF_SIZE 8192
/* Copy whatever the last rule matched to the standard output. */
#ifndef ECHO
/* This used to be an fputs(), but since the string might contain NUL's,
* we now use fwrite().
#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
/* Gets input and stuffs it into &buf&.
number of characters read, or YY_NULL,
* is returned in &result&.
#ifndef YY_INPUT
#define YY_INPUT(buf,result,max_size) \
if ( yy_current_buffer-&yy_is_interactive ) \
int c = '*', \
for ( n = 0; n & max_size && \
(c = getc( yyin )) != EOF && c != '\n'; ++n ) \
buf[n] = (char) \
if ( c == '\n' ) \
buf[n++] = (char) \
if ( c == EOF && ferror( yyin ) ) \
YY_FATAL_ERROR( &input in flex scanner failed& ); \
result = \
else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
&& ferror( yyin ) ) \
YY_FATAL_ERROR( &input in flex scanner failed& );
/* No semi- correct usage is to write &yyterminate();& -
* we don't want an extra ';' after the &return& because that will cause
* some compilers to complain about unreachable statements.
#ifndef yyterminate
#define yyterminate() return YY_NULL
/* Number of entries by which start-condition stack grows. */
#ifndef YY_START_STACK_INCR
#define YY_START_STACK_INCR 25
/* Report a fatal error. */
#ifndef YY_FATAL_ERROR
#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
/* Default declaration of generated scanner - a define so the user can
* easily add parameters.
#ifndef YY_DECL
#define YY_DECL int yylex YY_PROTO(( void ))
/* Code executed at the beginning of each rule, after yytext and yyleng
* have been set up.
#ifndef YY_USER_ACTION
#define YY_USER_ACTION
/* Code executed at the end of each rule. */
#ifndef YY_BREAK
#define YY_BREAK
#define YY_RULE_SETUP \
YY_USER_ACTION
register yy_state_type yy_current_
register char *yy_cp = NULL, *yy_bp = NULL;
register int yy_
#line 174 &scanner.l&
#line 2837 &scanner.c&
if ( yy_init )
yy_init = 0;
#ifdef YY_USER_INIT
YY_USER_INIT;
if ( ! yy_start )
yy_start = 1; /* first start state */
if ( ! yyin )
if ( ! yyout )
if ( ! yy_current_buffer )
yy_current_buffer =
yy_create_buffer( yyin, YY_BUF_SIZE );
yy_load_buffer_state();
while ( 1 )
/* loops until end-of-file is reached */
yy_cp = yy_c_buf_p;
/* Support of yytext. */
*yy_cp = yy_hold_
/* yy_bp points to the position in yy_ch_buf of the start of
* the current run.
yy_bp = yy_
yy_current_state = yy_
register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
if ( yy_accept[yy_current_state] )
yy_last_accepting_state = yy_current_
yy_last_accepting_cpos = yy_
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
yy_current_state = (int) yy_def[yy_current_state];
if ( yy_current_state &= 1434 )
yy_c = yy_meta[(unsigned int) yy_c];
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
while ( yy_base[yy_current_state] != 7401 );
yy_find_action:
yy_act = yy_accept[yy_current_state];
if ( yy_act == 0 )
{ /* have to back up */
yy_cp = yy_last_accepting_
yy_current_state = yy_last_accepting_
yy_act = yy_accept[yy_current_state];
YY_DO_BEFORE_ACTION;
do_action: /* This label is used only to access EOF actions. */
switch ( yy_act )
{ /* beginning of action switch */
case 0: /* must back up */
/* undo the effects of YY_DO_BEFORE_ACTION */
*yy_cp = yy_hold_
yy_cp = yy_last_accepting_
yy_current_state = yy_last_accepting_
goto yy_find_
YY_RULE_SETUP
#line 175 &scanner.l&
return DST;
YY_RULE_SETUP
#line 176 &scanner.l&
return SRC;
YY_RULE_SETUP
#line 178 &scanner.l&
return LINK;
YY_RULE_SETUP
#line 179 &scanner.l&
return LINK;
YY_RULE_SETUP
#line 180 &scanner.l&
return ARP;
YY_RULE_SETUP
#line 181 &scanner.l&
return RARP;
YY_RULE_SETUP
#line 182 &scanner.l&
return IP;
YY_RULE_SETUP
#line 183 &scanner.l&
return SCTP;
YY_RULE_SETUP
#line 184 &scanner.l&
return TCP;
YY_RULE_SETUP
#line 185 &scanner.l&
return UDP;
YY_RULE_SETUP
#line 186 &scanner.l&
return ICMP;
YY_RULE_SETUP
#line 187 &scanner.l&
return IGMP;
YY_RULE_SETUP
#line 188 &scanner.l&
return IGRP;
YY_RULE_SETUP
#line 189 &scanner.l&
return PIM;
YY_RULE_SETUP
#line 190 &scanner.l&
return VRRP;
YY_RULE_SETUP
#line 191 &scanner.l&
return RADIO;
YY_RULE_SETUP
#line 193 &scanner.l&
#ifdef INET6
return IPV6;
bpf_error(&%s not supported&, yytext);
YY_RULE_SETUP
#line 200 &scanner.l&
#ifdef INET6
return ICMPV6;
bpf_error(&%s not supported&, yytext);
YY_RULE_SETUP
#line 207 &scanner.l&
return AH;
YY_RULE_SETUP
#line 208 &scanner.l&
return ESP;
YY_RULE_SETUP
#line 210 &scanner.l&
return ATALK;
YY_RULE_SETUP
#line 211 &scanner.l&
return AARP;
YY_RULE_SETUP
#line 212 &scanner.l&
return DECNET;
YY_RULE_SETUP
#line 213 &scanner.l&
return LAT;
YY_RULE_SETUP
#line 214 &scanner.l&
return SCA;
YY_RULE_SETUP
#line 215 &scanner.l&
return MOPRC;
YY_RULE_SETUP
#line 216 &scanner.l&
return MOPDL;
YY_RULE_SETUP
#line 218 &scanner.l&
return ISO;
YY_RULE_SETUP
#line 219 &scanner.l&
return ESIS;
YY_RULE_SETUP
#line 220 &scanner.l&
return ESIS;
YY_RULE_SETUP
#line 221 &scanner.l&
return ISIS;
YY_RULE_SETUP
#line 222 &scanner.l&
return ISIS;
YY_RULE_SETUP
#line 223 &scanner.l&
return L1;
YY_RULE_SETUP
#line 224 &scanner.l&
return L2;
YY_RULE_SETUP
#line 225 &scanner.l&
return IIH;
YY_RULE_SETUP
#line 226 &scanner.l&
return LSP;
YY_RULE_SETUP
#line 227 &scanner.l&
return SNP;
YY_RULE_SETUP
#line 228 &scanner.l&
return CSNP;
YY_RULE_SETUP
#line 229 &scanner.l&
return PSNP;
YY_RULE_SETUP
#line 231 &scanner.l&
return CLNP;
YY_RULE_SETUP
#line 233 &scanner.l&
return STP;
YY_RULE_SETUP
#line 235 &scanner.l&
return IPX;
YY_RULE_SETUP
#line 237 &scanner.l&
return NETBEUI;
YY_RULE_SETUP
#line 239 &scanner.l&
return HOST;
YY_RULE_SETUP
#line 240 &scanner.l&
return NET;
YY_RULE_SETUP
#line 241 &scanner.l&
return NETMASK;
YY_RULE_SETUP
#line 242 &scanner.l&
return PORT;
YY_RULE_SETUP
#line 243 &scanner.l&
return PORTRANGE;
YY_RULE_SETUP
#line 244 &scanner.l&
return PROTO;
YY_RULE_SETUP
#line 245 &scanner.l&
#ifdef NO_PROTOCHAIN
bpf_error(&%s not supported&, yytext);
return PROTOCHAIN;
YY_RULE_SETUP
#line 253 &scanner.l&
return GATEWAY;
YY_RULE_SETUP
#line 255 &scanner.l&
return TYPE;
YY_RULE_SETUP
#line 256 &scanner.l&
return SUBTYPE;
YY_RULE_SETUP
#line 257 &scanner.l&
return DIR;
YY_RULE_SETUP
#line 258 &scanner.l&
return ADDR1;
YY_RULE_SETUP
#line 259 &scanner.l&
return ADDR2;
YY_RULE_SETUP
#line 260 &scanner.l&
return ADDR3;
YY_RULE_SETUP
#line 261 &scanner.l&
return ADDR4;
YY_RULE_SETUP
#line 263 &scanner.l&
return LESS;
YY_RULE_SETUP
#line 264 &scanner.l&
return GREATER;
YY_RULE_SETUP
#line 265 &scanner.l&
return CBYTE;
YY_RULE_SETUP
#line 266 &scanner.l&
return TK_BROADCAST;
YY_RULE_SETUP
#line 267 &scanner.l&
return TK_MULTICAST;
YY_RULE_SETUP
#line 269 &scanner.l&
return AND;
YY_RULE_SETUP
#line 270 &scanner.l&
return OR;
YY_RULE_SETUP
#line 271 &scanner.l&
return '!';
YY_RULE_SETUP
#line 273 &scanner.l&
return LEN;
YY_RULE_SETUP
#line 274 &scanner.l&
return INBOUND;
YY_RULE_SETUP
#line 275 &scanner.l&
return OUTBOUND;
YY_RULE_SETUP
#line 277 &scanner.l&
return VLAN;
YY_RULE_SETUP
#line 278 &scanner.l&
return MPLS;
YY_RULE_SETUP
#line 279 &scanner.l&
return PPPOED;
YY_RULE_SETUP
#line 280 &scanner.l&
return PPPOES;
YY_RULE_SETUP
#line 282 &scanner.l&
return LANE;
YY_RULE_SETUP
#line 283 &scanner.l&
return LLC;
YY_RULE_SETUP
#line 284 &scanner.l&
return METAC;
YY_RULE_SETUP
#line 285 &scanner.l&
return BCC;
YY_RULE_SETUP
#line 286 &scanner.l&
return OAM;
YY_RULE_SETUP
#line 287 &scanner.l&
return OAMF4;
YY_RULE_SETUP
#line 288 &scanner.l&
return OAMF4EC;
YY_RULE_SETUP
#line 289 &scanner.l&
return OAMF4SC;
YY_RULE_SETUP
#line 290 &scanner.l&
return SC;
YY_RULE_SETUP
#line 291 &scanner.l&
return ILMIC;
YY_RULE_SETUP
#line 292 &scanner.l&
return VPI;
YY_RULE_SETUP
#line 293 &scanner.l&
return VCI;
YY_RULE_SETUP
#line 294 &scanner.l&
return CONNECTMSG;
YY_RULE_SETUP
#line 295 &scanner.l&
return METACONNECT;
YY_RULE_SETUP
#line 297 &scanner.l&
return PF_IFNAME;
YY_RULE_SETUP
#line 298 &scanner.l&
return PF_RSET;
YY_RULE_SETUP
#line 299 &scanner.l&
return PF_RNR;
YY_RULE_SETUP
#line 300 &scanner.l&
return PF_SRNR;
YY_RULE_SETUP
#line 301 &scanner.l&
return PF_REASON;
YY_RULE_SETUP
#line 302 &scanner.l&
return PF_ACTION;
YY_RULE_SETUP
#line 304 &scanner.l&
return FISU;
YY_RULE_SETUP
#line 305 &scanner.l&
return LSSU;
YY_RULE_SETUP
#line 306 &scanner.l&
return LSSU;
YY_RULE_SETUP
#line 307 &scanner.l&
return MSU;
YY_RULE_SETUP
#line 308 &scanner.l&
return SIO;
YY_RULE_SETUP
#line 309 &scanner.l&
return OPC;
YY_RULE_SETUP
#line 310 &scanner.l&
return DPC;
YY_RULE_SETUP
#line 311 &scanner.l&
return SLS;
YY_RULE_SETUP
#line 313 &scanner.l&
YY_RULE_SETUP
#line 314 &scanner.l&
return yytext[0];
YY_RULE_SETUP
#line 315 &scanner.l&
return GEQ;
YY_RULE_SETUP
#line 316 &scanner.l&
return LEQ;
YY_RULE_SETUP
#line 317 &scanner.l&
return NEQ;
YY_RULE_SETUP
#line 318 &scanner.l&
return '=';
YY_RULE_SETUP
#line 319 &scanner.l&
return LSH;
YY_RULE_SETUP
#line 320 &scanner.l&
return RSH;
YY_RULE_SETUP
#line 321 &scanner.l&
{ yylval.e = pcap_ether_aton(((char *)yytext)+1);
return AID; }
YY_RULE_SETUP
#line 323 &scanner.l&
{ yylval.e = pcap_ether_aton((char *)yytext);
return EID; }
YY_RULE_SETUP
#line 325 &scanner.l&
{ yylval.i = stoi((char *)yytext); return NUM; }
YY_RULE_SETUP
#line 326 &scanner.l&
yylval.s = sdup((char *)yytext); return HID; }
YY_RULE_SETUP
#line 328 &scanner.l&
#ifdef INET6
struct addrinfo hints, *
memset(&hints, 0, sizeof(hints));
hints.ai_family = AF_INET6;
hints.ai_flags = AI_NUMERICHOST;
if (getaddrinfo(yytext, NULL, &hints, &res))
bpf_error(&bogus IPv6 address %s&, yytext);
yylval.s = sdup((char *)yytext); return HID6;
bpf_error(&IPv6 address %s not supported&, yytext);
#endif /*INET6*/
YY_RULE_SETUP
#line 343 &scanner.l&
{ bpf_error(&bogus ethernet address %s&, yytext); }
YY_RULE_SETUP
#line 344 &scanner.l&
{ yylval.i = 0; return NUM; }
YY_RULE_SETUP
#line 345 &scanner.l&
{ yylval.i = 1; return NUM; }
YY_RULE_SETUP
#line 346 &scanner.l&
{ yylval.i = 0; return NUM; }
YY_RULE_SETUP
#line 347 &scanner.l&
{ yylval.i = 3; return NUM; }
YY_RULE_SETUP
#line 348 &scanner.l&
{ yylval.i = 4; return NUM; }
YY_RULE_SETUP
#line 349 &scanner.l&
{ yylval.i = 5; return NUM; }
YY_RULE_SETUP
#line 350 &scanner.l&
{ yylval.i = 8; return NUM; }
YY_RULE_SETUP
#line 351 &scanner.l&
{ yylval.i = 9; return NUM; }
YY_RULE_SETUP
#line 352 &scanner.l&
{ yylval.i = 10; return NUM; }
YY_RULE_SETUP
#line 353 &scanner.l&
{ yylval.i = 11; return NUM; }
YY_RULE_SETUP
#line 354 &scanner.l&
{ yylval.i = 12; return NUM; }
YY_RULE_SETUP
#line 355 &scanner.l&
{ yylval.i = 13; return NUM; }
YY_RULE_SETUP
#line 356 &scanner.l&
{ yylval.i = 14; return NUM; }
YY_RULE_SETUP
#line 357 &scanner.l&
{ yylval.i = 15; return NUM; }
YY_RULE_SETUP
#line 358 &scanner.l&
{ yylval.i = 16; return NUM; }
YY_RULE_SETUP
#line 359 &scanner.l&
{ yylval.i = 17; return NUM; }
YY_RULE_SETUP
#line 360 &scanner.l&
{ yylval.i = 18; return NUM; }
YY_RULE_SETUP
#line 361 &scanner.l&
{ yylval.i = 13; return NUM; }
YY_RULE_SETUP
#line 362 &scanner.l&
{ yylval.i = 0x01; return NUM; }
YY_RULE_SETUP
#line 363 &scanner.l&
{ yylval.i = 0x02; return NUM; }
YY_RULE_SETUP
#line 364 &scanner.l&
{ yylval.i = 0x04; return NUM; }
YY_RULE_SETUP
#line 365 &scanner.l&
{ yylval.i = 0x08; return NUM; }
YY_RULE_SETUP
#line 366 &scanner.l&
{ yylval.i = 0x10; return NUM; }
YY_RULE_SETUP
#line 367 &scanner.l&
{ yylval.i = 0x20; return NUM; }
YY_RULE_SETUP
#line 368 &scanner.l&
yylval.s = sdup((char *)yytext); return ID; }
YY_RULE_SETUP
#line 370 &scanner.l&
{ yylval.s = sdup((char *)yytext + 1); return ID; }
YY_RULE_SETUP
#line 371 &scanner.l&
bpf_error(&illegal token: %s&, yytext); }
YY_RULE_SETUP
#line 373 &scanner.l&
{ bpf_error(&illegal char '%c'&, *yytext); }
YY_RULE_SETUP
#line 374 &scanner.l&
#line 3677 &scanner.c&
case YY_STATE_EOF(INITIAL):
yyterminate();
case YY_END_OF_BUFFER:
/* Amount of text matched not including the EOB char. */
int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
/* Undo the effects of YY_DO_BEFORE_ACTION. */
*yy_cp = yy_hold_
YY_RESTORE_YY_MORE_OFFSET
if ( yy_current_buffer-&yy_buffer_status == YY_BUFFER_NEW )
/* We're scanning a new file or input source.
* possible that this happened because the user
* just pointed yyin at a new source and called
* yylex().
If so, then we have to assure
* consistency between yy_current_buffer and our
* globals.
Here is the right place to do so, because
* this is the first action (other than possibly a
* back-up) that will match for the new input source.
yy_n_chars = yy_current_buffer-&yy_n_
yy_current_buffer-&yy_input_file =
yy_current_buffer-&yy_buffer_status = YY_BUFFER_NORMAL;
/* Note that here we test for yy_c_buf_p &&=& to the position
* of the first EOB in the buffer, since yy_c_buf_p will
* already have been incremented past the NUL character
* (since all states make transitions on EOB to the
* end-of-buffer state).
Contrast this with the test
* in input().
if ( yy_c_buf_p &= &yy_current_buffer-&yy_ch_buf[yy_n_chars] )
{ /* This was really a NUL. */
yy_state_type yy_next_
yy_c_buf_p = yytext_ptr + yy_amount_of_matched_
yy_current_state = yy_get_previous_state();
/* Okay, we're now positioned to make the NUL
* transition.
We couldn't have
* yy_get_previous_state() go ahead and do it
* for us because it doesn't know how to deal
* with the possibility of jamming (and we don't
* want to build jamming into it because then it
* will run more slowly).
yy_next_state = yy_try_NUL_trans( yy_current_state );
yy_bp = yytext_ptr + YY_MORE_ADJ;
if ( yy_next_state )
/* Consume the NUL. */
yy_cp = ++yy_c_buf_p;
yy_current_state = yy_next_
yy_cp = yy_c_buf_p;
goto yy_find_
else switch ( yy_get_next_buffer() )
case EOB_ACT_END_OF_FILE:
yy_did_buffer_switch_on_eof = 0;
if ( yywrap() )
/* Note: because we've taken care in
* yy_get_next_buffer() to have set up
* yytext, we can now set up
* yy_c_buf_p so that if some total
* hoser (like flex itself) wants to
* call the scanner after we return the
* YY_NULL, it'll still work - another
* YY_NULL will get returned.
yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
yy_act = YY_STATE_EOF(YY_START);
if ( ! yy_did_buffer_switch_on_eof )
YY_NEW_FILE;
case EOB_ACT_CONTINUE_SCAN:
yy_c_buf_p =
yytext_ptr + yy_amount_of_matched_
yy_current_state = yy_get_previous_state();
yy_cp = yy_c_buf_p;
yy_bp = yytext_ptr + YY_MORE_ADJ;
case EOB_ACT_LAST_MATCH:
yy_c_buf_p =
&yy_current_buffer-&yy_ch_buf[yy_n_chars];
yy_current_state = yy_get_previous_state();
yy_cp = yy_c_buf_p;
yy_bp = yytext_ptr + YY_MORE_ADJ;
goto yy_find_
YY_FATAL_ERROR(
&fatal flex scanner internal error--no action found& );
} /* end of action switch */
} /* end of scanning one token */
} /* end of yylex */
/* yy_get_next_buffer - try to read in a new buffer
* Returns a code representing an action:
* EOB_ACT_LAST_MATCH -
* EOB_ACT_CONTINUE_SCAN - continue scanning from current position
* EOB_ACT_END_OF_FILE - end of file
static int yy_get_next_buffer()
register char *dest = yy_current_buffer-&yy_ch_
register char *source = yytext_
register int number_to_move,
if ( yy_c_buf_p & &yy_current_buffer-&yy_ch_buf[yy_n_chars + 1] )
YY_FATAL_ERROR(
&fatal flex scanner internal error--end of buffer missed& );
if ( yy_current_buffer-&yy_fill_buffer == 0 )
{ /* Don't try to fill the buffer, so this is an EOF. */
if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
/* We matched a single character, the EOB, so
* treat this as a final EOF.
return EOB_ACT_END_OF_FILE;
/* We matched some text prior to the EOB, first
* process it.
return EOB_ACT_LAST_MATCH;
/* Try to read more data. */
/* First move last chars to start of buffer. */
number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
for ( i = 0; i & number_to_ ++i )
*(dest++) = *(source++);
if ( yy_current_buffer-&yy_buffer_status == YY_BUFFER_EOF_PENDING )
/* don't do the read, it's not guaranteed to return an EOF,
* just force an EOF
yy_current_buffer-&yy_n_chars = yy_n_chars = 0;
int num_to_read =
yy_current_buffer-&yy_buf_size - number_to_move - 1;
while ( num_to_read &= 0 )
{ /* Not enough room in the buffer - grow it. */
#ifdef YY_USES_REJECT
YY_FATAL_ERROR(
&input buffer overflow, can't enlarge buffer because scanner uses REJECT& );
/* just a shorter name for the current buffer */
YY_BUFFER_STATE b = yy_current_
int yy_c_buf_p_offset =
(int) (yy_c_buf_p - b-&yy_ch_buf);
if ( b-&yy_is_our_buffer )
int new_size = b-&yy_buf_size * 2;
if ( new_size &= 0 )
b-&yy_buf_size += b-&yy_buf_size / 8;
b-&yy_buf_size *= 2;
b-&yy_ch_buf = (char *)
/* Include room in for 2 EOB chars. */
yy_flex_realloc( (void *) b-&yy_ch_buf,
b-&yy_buf_size + 2 );
/* Can't grow it, we don't own it. */
b-&yy_ch_buf = 0;
if ( ! b-&yy_ch_buf )
YY_FATAL_ERROR(
&fatal error - scanner input buffer overflow& );
yy_c_buf_p = &b-&yy_ch_buf[yy_c_buf_p_offset];
num_to_read = yy_current_buffer-&yy_buf_size -
number_to_move - 1;
if ( num_to_read & YY_READ_BUF_SIZE )
num_to_read = YY_READ_BUF_SIZE;
/* Read in more data. */
YY_INPUT( (&yy_current_buffer-&yy_ch_buf[number_to_move]),
yy_n_chars, num_to_read );
yy_current_buffer-&yy_n_chars = yy_n_
if ( yy_n_chars == 0 )
if ( number_to_move == YY_MORE_ADJ )
ret_val = EOB_ACT_END_OF_FILE;
yyrestart( yyin );
ret_val = EOB_ACT_LAST_MATCH;
yy_current_buffer-&yy_buffer_status =
YY_BUFFER_EOF_PENDING;
ret_val = EOB_ACT_CONTINUE_SCAN;
yy_n_chars += number_to_
yy_current_buffer-&yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
yy_current_buffer-&yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
yytext_ptr = &yy_current_buffer-&yy_ch_buf[0];
return ret_
/* yy_get_previous_state - get the state just before the EOB char was reached */
static yy_state_type yy_get_previous_state()
register yy_state_type yy_current_
register char *yy_
yy_current_state = yy_
for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp & yy_c_buf_p; ++yy_cp )
register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
if ( yy_accept[yy_current_state] )
yy_last_accepting_state = yy_current_
yy_last_accepting_cpos = yy_
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
yy_current_state = (int) yy_def[yy_current_state];
if ( yy_current_state &= 1434 )
yy_c = yy_meta[(unsigned int) yy_c];
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
return yy_current_
/* yy_try_NUL_trans - try to make a transition on the NUL character
* synopsis
* next_state = yy_try_NUL_trans( current_state );
#ifdef YY_USE_PROTOS
static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
static yy_state_type yy_try_NUL_trans( yy_current_state )
yy_state_type yy_current_
register int yy_is_
register char *yy_cp = yy_c_buf_p;
register YY_CHAR yy_c = 1;
if ( yy_accept[yy_current_state] )
yy_last_accepting_state = yy_current_
yy_last_accepting_cpos = yy_
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
yy_current_state = (int) yy_def[yy_current_state];
if ( yy_current_state &= 1434 )
yy_c = yy_meta[(unsigned int) yy_c];
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
yy_is_jam = (yy_current_state == 1433);
return yy_is_jam ? 0 : yy_current_
#ifndef YY_NO_UNPUT
#ifdef YY_USE_PROTOS
static void yyunput( int c, register char *yy_bp )
static void yyunput( c, yy_bp )
register char *yy_
register char *yy_cp = yy_c_buf_p;
/* undo effects of setting up yytext */
*yy_cp = yy_hold_
if ( yy_cp & yy_current_buffer-&yy_ch_buf + 2 )
{ /* need to shift things up to make room */
/* +2 for EOB chars. */
register int number_to_move = yy_n_chars + 2;
register char *dest = &yy_current_buffer-&yy_ch_buf[
yy_current_buffer-&yy_buf_size + 2];
register char *source =
&yy_current_buffer-&yy_ch_buf[number_to_move];
while ( source & yy_current_buffer-&yy_ch_buf )
*--dest = *--
yy_cp += (int) (dest - source);
yy_bp += (int) (dest - source);
yy_current_buffer-&yy_n_chars =
yy_n_chars = yy_current_buffer-&yy_buf_
if ( yy_cp & yy_current_buffer-&yy_ch_buf + 2 )
YY_FATAL_ERROR( &flex scanner push-back overflow& );
*--yy_cp = (char)
yytext_ptr = yy_
yy_hold_char = *yy_
yy_c_buf_p = yy_
#endif /* ifndef YY_NO_UNPUT */
#ifndef YY_NO_INPUT
#ifdef __cplusplus
static int yyinput()
static int input()
*yy_c_buf_p = yy_hold_
if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
/* yy_c_buf_p now points to the character we want to return.
* If this occurs *before* the EOB characters, then it's a
* valid NUL; if not, then we've hit the end of the buffer.
if ( yy_c_buf_p & &yy_current_buffer-&yy_ch_buf[yy_n_chars] )
/* This was really a NUL. */
*yy_c_buf_p = '\0';
{ /* need more input */
int offset = yy_c_buf_p - yytext_
++yy_c_buf_p;
switch ( yy_get_next_buffer() )
case EOB_ACT_LAST_MATCH:
/* This happens because yy_g_n_b()
* sees that we've accumulated a
* token and flags that we need to
* try matching the token before
* proceeding.
But for input(),
* there's no matching to consider.
* So convert the EOB_ACT_LAST_MATCH
* to EOB_ACT_END_OF_FILE.
/* Reset buffer status. */
yyrestart( yyin );
/* fall through */
case EOB_ACT_END_OF_FILE:
if ( yywrap() )
return EOF;
if ( ! yy_did_buffer_switch_on_eof )
YY_NEW_FILE;
#ifdef __cplusplus
return yyinput();
return input();
case EOB_ACT_CONTINUE_SCAN:
yy_c_buf_p = yytext_ptr +
c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */
*yy_c_buf_p = '\0'; /* preserve yytext */
yy_hold_char = *++yy_c_buf_p;
#endif /* YY_NO_INPUT */
#ifdef YY_USE_PROTOS
void yyrestart( FILE *input_file )
void yyrestart( input_file )
FILE *input_
if ( ! yy_current_buffer )
yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
yy_init_buffer( yy_current_buffer, input_file );
yy_load_buffer_state();
#ifdef YY_USE_PROTOS
void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
void yy_switch_to_buffer( new_buffer )
YY_BUFFER_STATE new_
if ( yy_current_buffer == new_buffer )
if ( yy_current_buffer )
/* Flush out information for old buffer. */
*yy_c_buf_p = yy_hold_
yy_current_buffer-&yy_buf_pos = yy_c_buf_p;
yy_current_buffer-&yy_n_chars = yy_n_
yy_current_buffer = new_
yy_load_buffer_state();
/* We don't actually know whether we did this switch during
* EOF (yywrap()) processing, but the only time this flag
* is looked at is after yywrap() is called, so it's safe
* to go ahead and always set it.
yy_did_buffer_switch_on_eof = 1;
#ifdef YY_USE_PROTOS
void yy_load_buffer_state( void )
void yy_load_buffer_state()
yy_n_chars = yy_current_buffer-&yy_n_
yytext_ptr = yy_c_buf_p = yy_current_buffer-&yy_buf_
yyin = yy_current_buffer-&yy_input_
yy_hold_char = *yy_c_buf_p;
#ifdef YY_USE_PROTOS
YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
YY_BUFFER_STATE yy_create_buffer( file, size )
YY_BUFFER_STATE
b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
if ( ! b )
YY_FATAL_ERROR( &out of dynamic memory in yy_create_buffer()& );
b-&yy_buf_size =
/* yy_ch_buf has to be 2 characters longer than the size given because
* we need to put in 2 end-of-buffer characters.
b-&yy_ch_buf = (char *) yy_flex_alloc( b-&yy_buf_size + 2 );
if ( ! b-&yy_ch_buf )
YY_FATAL_ERROR( &out of dynamic memory in yy_create_buffer()& );
b-&yy_is_our_buffer = 1;
yy_init_buffer( b, file );
#ifdef YY_USE_PROTOS
void yy_delete_buffer( YY_BUFFER_STATE b )
void yy_delete_buffer( b )
YY_BUFFER_STATE
if ( ! b )
if ( b == yy_current_buffer )
yy_current_buffer = (YY_BUFFER_STATE) 0;
if ( b-&yy_is_our_buffer )
yy_flex_free( (void *) b-&yy_ch_buf );
yy_flex_free( (void *) b );
#ifdef YY_USE_PROTOS
void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
void yy_init_buffer( b, file )
YY_BUFFER_STATE
yy_flush_buffer( b );
b-&yy_input_file =
b-&yy_fill_buffer = 1;
#if YY_ALWAYS_INTERACTIVE
b-&yy_is_interactive = 1;
#if YY_NEVER_INTERACTIVE
b-&yy_is_interactive = 0;
b-&yy_is_interactive = file ? (isatty( fileno(file) ) & 0) : 0;
#ifdef YY_USE_PROTOS
void yy_flush_buffer( YY_BUFFER_STATE b )
void yy_flush_buffer( b )
YY_BUFFER_STATE
if ( ! b )
b-&yy_n_chars = 0;
/* We always need two end-of-buffer characters.
The first causes
* a transition to the end-of-buffer state.
The second causes
* a jam in that state.
b-&yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
b-&yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
b-&yy_buf_pos = &b-&yy_ch_buf[0];
b-&yy_at_bol = 1;
b-&yy_buffer_status = YY_BUFFER_NEW;
if ( b == yy_current_buffer )
yy_load_buffer_state();
#ifndef YY_NO_SCAN_BUFFER
#ifdef YY_USE_PROTOS
YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
YY_BUFFER_STATE yy_scan_buffer( base, size )
YY_BUFFER_STATE
if ( size & 2 ||
base[size-2] != YY_END_OF_BUFFER_CHAR ||
base[size-1] != YY_END_OF_BUFFER_CHAR )
/* They forgot to leave room for the EOB's. */
b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
if ( ! b )
YY_FATAL_ERROR( &out of dynamic memory in yy_scan_buffer()& );
b-&yy_buf_size = size - 2; /* &- 2& to take care of EOB's */
b-&yy_buf_pos = b-&yy_ch_buf =
b-&yy_is_our_buffer = 0;
b-&yy_input_file = 0;
b-&yy_n_chars = b-&yy_buf_
b-&yy_is_interactive = 0;
b-&yy_at_bol = 1;
b-&yy_fill_buffer = 0;
b-&yy_buffer_status = YY_BUFFER_NEW;
yy_switch_to_buffer( b );
#ifndef YY_NO_SCAN_STRING
#ifdef YY_USE_PROTOS
YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
YY_BUFFER_STATE yy_scan_string( yy_str )
yyconst char *yy_
for ( len = 0; yy_str[len]; ++len )
return yy_scan_bytes( yy_str, len );
#ifndef YY_NO_SCAN_BYTES
#ifdef YY_USE_PROTOS
YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
YY_BUFFER_STATE yy_scan_bytes( bytes, len )
yyconst char *
YY_BUFFER_STATE
/* Get memory for full buffer, including space for trailing EOB's. */
n = len + 2;
buf = (char *) yy_flex_alloc( n );
if ( ! buf )
YY_FATAL_ERROR( &out of dynamic memory in yy_scan_bytes()& );
for ( i = 0; i & ++i )
buf[i] = bytes[i];
buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
b = yy_scan_buffer( buf, n );
if ( ! b )
YY_FATAL_ERROR( &bad buffer in yy_scan_bytes()& );
/* It's okay to grow etc. this buffer, and we should throw it
* away when we're done.
b-&yy_is_our_buffer = 1;
#ifndef YY_NO_PUSH_STATE
#ifdef YY_USE_PROTOS
static void yy_push_state( int new_state )
static void yy_push_state( new_state )
if ( yy_start_stack_ptr &= yy_start_stack_depth )
yy_size_t new_
yy_start_stack_depth += YY_START_STACK_INCR;
new_size = yy_start_stack_depth * sizeof( int );
if ( ! yy_start_stack )
yy_start_stack = (int *) yy_flex_alloc( new_size );
yy_start_stack = (int *) yy_flex_realloc(
(void *) yy_start_stack, new_size );
if ( ! yy_start_stack )
YY_FATAL_ERROR(
&out of memory expanding start-condition stack& );
yy_start_stack[yy_start_stack_ptr++] = YY_START;
BEGIN(new_state);
#ifndef YY_NO_POP_STATE
static void yy_pop_state()
if ( --yy_start_stack_ptr & 0 )
YY_FATAL_ERROR( &start-condition stack underflow& );
BEGIN(yy_start_stack[yy_start_stack_ptr]);
#ifndef YY_NO_TOP_STATE
static int yy_top_state()
return yy_start_stack[yy_start_stack_ptr - 1];
#ifndef YY_EXIT_FAILURE
#define YY_EXIT_FAILURE 2
#ifdef YY_USE_PROTOS
static void yy_fatal_error( yyconst char msg[] )
static void yy_fatal_error( msg )
char msg[];
(void) fprintf( stderr, &%s\n&, msg );
exit( YY_EXIT_FAILURE );
/* Redefine yyless() so it works in section 3 code. */
#undef yyless
#define yyless(n) \
/* Undo effects of setting up yytext. */ \
yytext[yyleng] = yy_hold_ \
yy_c_buf_p = yytext + \
yy_hold_char = *yy_c_buf_p; \
*yy_c_buf_p = '\0'; \
yyleng = \
while ( 0 )
/* Internal utility routines. */
#ifndef yytext_ptr
#ifdef YY_USE_PROTOS
static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
static void yy_flex_strncpy( s1, s2, n )
yyconst char *s2;
for ( i = 0; i & ++i )
s1[i] = s2[i];
#ifdef YY_NEED_STRLEN
#ifdef YY_USE_PROTOS
static int yy_flex_strlen( yyconst char *s )
static int yy_flex_strlen( s )
yyconst char *s;
for ( n = 0; s[n]; ++n )
#ifdef YY_USE_PROTOS
static void *yy_flex_alloc( yy_size_t size )
static void *yy_flex_alloc( size )
return (void *) malloc( size );
#ifdef YY_USE_PROTOS
static void *yy_flex_realloc( void *ptr, yy_size_t size )
static void *yy_flex_realloc( ptr, size )
/* The cast to (char *) in the following accommodates both
* implementations that use char* generic pointers, and those
* that use void* generic pointers.
It works with the latter
* because both ANSI C and C++ allow castless assignment from
* any pointer type to void*, and deal with argument conversions
* as though doing an assignment.
return (void *) realloc( (char *) ptr, size );
#ifdef YY_USE_PROTOS
static void yy_flex_free( void *ptr )
static void yy_flex_free( ptr )
free( ptr );
#if YY_MAIN
int main()
#line 374 &scanner.l&
lex_init(buf)
const char *
#ifdef FLEX_SCANNER
in_buffer = yy_scan_string(buf);
in_buffer =
* Do any cleanup necessary after parsing.
lex_cleanup()
#ifdef FLEX_SCANNER
if (in_buffer != NULL)
yy_delete_buffer(in_buffer);
in_buffer = NULL;
* Also define a yywrap.
Note that if we're using flex, it will
* define a macro to map this identifier to pcap_wrap.
/* Hex digit to integer. */
static inline int
if (isdigit(c))
return c - '0';
else if (islower(c))
return c - 'a' + 10;
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
int base = 10;
int n = 0;
if (*s == '0') {
if (s[1] == 'x' || s[1] == 'X') {
base = 16;
while (*s)
n = n * base + xdtoi(*s++);
Copyright(C)
OKBASE.NET All Rights Reserved 好库网 版权所有

我要回帖

更多关于 表示一种运算符号 的文章

 

随机推荐