⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scanner.l

📁 doxygen(一个自动从源代码生成文档的工具)的源代码
💻 L
📖 第 1 页 / 共 5 页
字号:
FILE      ({FILESCHAR}*{FILEECHAR}+("."{FILESCHAR}*{FILEECHAR}+)*)|("\""[^\n\"]+"\"")ID        [a-z_A-Z][a-z_A-Z0-9]*LABELID   [a-z_A-Z][a-z_A-Z0-9\-]*SCOPEID   {ID}({ID}*{BN}*"::"{BN}*)*({ID}?)SCOPENAME (({ID}?{BN}*"::"{BN}*)*)((~{BN}*)?{ID})ATTR      ({B}+[^>\n]*)?A         [aA]BR	  [bB][rR]PRE       [pP][rR][eE]TABLE	  [tT][aA][bB][lL][eE]P	  [pP]UL        [uU][lL]OL	  [oO][lL]DL	  [dD][lL]TITLE     [tT][iI][tT][lL][eE]CHARLIT   (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))%option noyywrap%x	Define%x      DefineArg%x	DefineEnd%x	CompoundName%x	ClassVar%x	ClassTemplSpec%x	Bases%x	BasesProt%x	NextSemi%x	BitFields%x	FindMembers%x	FindMemberName%x      FindFields%x      FindFieldArg%x	Function%x	FuncRound%x	ExcpRound%x	FuncQual%x	Operator%x	Array%x	ReadBody%x	Using%x	UsingDirective%x	NameSpaceDocArg1%x	PackageDocArg1%x	SkipCurly%x	SkipCurlyCpp%x	SkipCurlyEndDoc%x      SkipString%x	SkipInits%x	SkipCPP%x	SkipCPPBlock%x	SkipComment%x	SkipCxxComment%x      SkipCurlyBlock%x      SkipRoundBlock%x	SkipCode%x	Sharp%x      SkipSharp%x	SkipRound%x	SkipSquare%x	SkipSection%x	IfGuard%x	IfNotGuard%x	TypedefName%x	TryFunctionBlock%x	TryFunctionBlockEnd%x	Comment%x      Doc%x	JavaDoc%x      ClassDoc%x      LineDoc%x      DefLineDoc%x      ClassDocArg1%x      ClassDocArg2%x      ClassDocArg3%x      ClassDocFunc%x      ClassDocFuncPtr%x      ClassDocFuncQual%x      ClassDocFuncSkipLine%x      ClassDocFuncExc%x	ClassDocDefine%x      ClassDocRelates%x      ClassDocBrief%x      ClassDocOverload%x	ClassDefineArgs%x	DocBaseClass%x	CppQuote%x	EndCppQuote%x	GroupDocArg1%x	GroupDocArg2%x	GroupName%x	GroupHeader%x	StoreGroupDocs%x	AfterDoc%x	AfterDocBrief%x	AfterDocLine%x      PageDoc%x      PageDocTitle%x      PageDocArg1%x      PageDocArg2%x      FileDocArg1%x      FileDocArg2%x      ExampleDoc%x	ExampleDocArg1%x	EnumDocArg1%x	FuncPtr%x	EndFuncPtr%x	FuncFunc%x	FuncFuncEnd%x	FuncFuncType%x      MemberSpec%x      MemberSpecSkip%x	SkipVerbatim%x      TodoParam%x      TestParam%x      BugParam%x	SectionLabel%x	SectionTitle%x	SkipTemplate%x	EndTemplate%x      CopyArgString%x	CopyArgRound%x	CopyArgSharp%x	CopyArgComment%x	CopyArgCommentLine%x	SkipUnionSwitch%x	ReadFuncArgType%x	ReadTempArgs%x	Specialization%x      SkipHtmlComment%x      ReadFormulaShort%x	ReadFormulaLong%x	AnchorLabel%x	ReadInitializer%x	CopyString%x	CopyRound%x	CopyCurly%x	IDLUnionCase%x	NSAliasName%x	NSAliasArg%x	PackageName%x	GetCallType%%<*>\x06[^\x06]*\x06			{ // new file  					  if (memberGroupId!=NOGROUP)					  {					    warn(yyFileName,yyLineNr,"Warning: Missing //@}");					    memberGroupId=NOGROUP;					  }  					  yyLineNr= 0 ; // there is always an extra newline at the start of the file					  int i; 					  for( i = 0 ; yytext[i+1] != 6 ; i++ )					    yyFileName[i] = yytext[i+1] ;					  yyFileName[i] = 0 ;					  setContext();					  msg("Parsing file %s...\n",yyFileName);					  current_root  = global_root ;					  initParser();					  current->reset();					  int sec=guessSection(yyFileName);					  if (sec)					  {					    current->name    = yyFileName;					    current->section = sec;					    current_root->addSubEntry(current);					    current          = new Entry;					  }					  BEGIN( FindMembers );					}<NextSemi>"{"				{  					  curlyCount=0;					  needsSemi = TRUE;  					  BEGIN(SkipCurlyBlock); 					}<NextSemi>"("				{  				 	  roundCount=0;  					  BEGIN(SkipRoundBlock);  					}<SkipRoundBlock>"("			{					  ++roundCount;  					}<SkipRoundBlock>")"			{  					  if (roundCount )					    --roundCount ;					  else					    BEGIN( NextSemi ) ;  					}<SkipCurlyBlock>"{"			{  					  ++curlyCount ; 					}<SkipCurlyBlock>"}"			{   				          if( curlyCount )					  {					    --curlyCount ;					  }					  else if (needsSemi)					  {					    BEGIN( NextSemi );					  }					  else					  {					    BEGIN( FindMembers );					  }					}<NextSemi>{CHARLIT}			<NextSemi>\"				{  					  lastStringContext=NextSemi;					  BEGIN(SkipString);  					}<NextSemi>[;,]				{   					  unput(*yytext);  					  BEGIN( FindMembers ); 					}<BitFields>[;,]				{  					  unput(*yytext);					  BEGIN( FindMembers );  					}<FindMembers>{B}*("properties"|"__property"){BN}*":"{BN}*  { // IDL or Borland C++ builder property   					  current->mtype = mtype = Property;					  current->protection = protection = Public ;					  current->type.resize(0); 					  current->name.resize(0); 					  current->args.resize(0);					  current->argList->clear();					  lineCount() ;					}<FindMembers>{B}*"k_dcop"{BN}*":"{BN}*  { current->mtype = mtype = DCOP;					  current->protection = protection = Public ;					  current->type.resize(0); 					  current->name.resize(0); 					  current->args.resize(0);					  current->argList->clear();					  lineCount() ;					}<FindMembers>{B}*"signals"{BN}*":"{BN}* { current->mtype = mtype = Signal;					  current->protection = protection = Public ;					  current->type.resize(0); 					  current->name.resize(0); 					  current->args.resize(0);					  current->argList->clear();					  lineCount() ;					}<FindMembers>{B}*"public"{BN}*"slots"{BN}*":"{BN}* {					  current->protection = protection = Public ;					  current->mtype = mtype = Slot;					  current->type.resize(0); 					  current->name.resize(0); 					  current->args.resize(0);					  current->argList->clear();					  lineCount();					}<FindMembers>{B}*"protected"{BN}*"slots"{BN}*":"{BN}* {					  current->protection = protection = Protected ;					  current->mtype = mtype = Slot;					  current->type.resize(0); 					  current->name.resize(0); 					  current->args.resize(0);					  current->argList->clear();					  lineCount();					}<FindMembers>{B}*"private"{BN}*"slots"{BN}*":"{BN}* {					  current->protection = protection = Private ;					  current->mtype = mtype = Slot;					  current->type.resize(0); 					  current->name.resize(0); 					  current->args.resize(0);					  current->argList->clear();					  lineCount();					}<FindMembers>{B}*("public"|"methods"|"__published"){BN}*":"{BN}* { 					  current->protection = protection = Public ;					  current->mtype = mtype = Method;					  current->type.resize(0); 					  current->name.resize(0); 					  current->args.resize(0);					  current->argList->clear();					  lineCount() ;					}<FindMembers>{B}*"protected"{BN}*":"{BN}* {   					  current->protection = protection = Protected ;					  current->mtype = mtype = Method;					  current->type.resize(0); 					  current->name.resize(0); 					  current->args.resize(0);					  current->argList->clear();					  lineCount() ;					}<FindMembers>{B}*"private"{BN}*":"{BN}*	{   					  current->protection = protection = Private ;					  current->mtype = mtype = Method;					  current->type.resize(0); 					  current->name.resize(0); 					  current->args.resize(0);					  current->argList->clear();					  lineCount() ;					}<FindMembers>{BN}{1,80}			{  					  lineCount();  					}<FindMembers>{B}*"package"{BN}+ 	{ // Java package  					  lineCount();					  BEGIN(PackageName);  					}<PackageName>{ID}("."{ID})*		{  					  current->name = yytext;                                          current->fileName = yyFileName;                                           current->startLine = yyLineNr;   					  current->section=Entry::PACKAGE_SEC;					  current_root->addSubEntry(current);					  current = new Entry ;					  initEntry();  					}<PackageName>";"			{  					  BEGIN(FindMembers);  					}<FindMembers>{B}*"static"{BN}+     	{ //current->type += " static ";  					  current->stat = TRUE;					  lineCount();					}<FindMembers>{B}*"extern"{BN}+		{  					  current->stat = FALSE;					  current->explicitExternal = TRUE;					  lineCount();  					}<FindMembers>{B}*"virtual"{BN}+    	{ current->type += " virtual ";					  current->virt = Virtual;					  lineCount();					}<FindMembers>{B}*"abstract"{BN}+    	{ current->type += " abstract ";					  current->virt = Pure;					  lineCount();					}<FindMembers>{B}*"inline"{BN}+		{ current->memSpec|=Entry::Inline;                                          lineCount();                                         }<FindMembers>{B}*"mutable"{BN}+		{ current->memSpec|=Entry::Mutable;                                          lineCount();                                         }<FindMembers>{B}*"explicit"{BN}+	{ current->memSpec|=Entry::Explicit;                                          lineCount();                                         }  /*<FindMembers>{B}*"import"{BN}+		{ // IDL import keyword  					  BEGIN( NextSemi );  					}  */<FindMembers>{B}*"typename"{BN}+	{ lineCount(); }<FindMembers>{B}*"namespace"{BN}*/[^a-z_A-Z0-9]	{   					  isTypedef=FALSE;					  current->section = Entry::NAMESPACE_SEC;					  current->type = "namespace" ;					  current->fileName  = yyFileName;					  current->startLine = yyLineNr;					  current->bodyLine  = yyLineNr;					  lineCount();  					  BEGIN( CompoundName ); 					}<FindMembers>{B}*"module"{BN}+		{   					  isTypedef=FALSE;					  current->section = Entry::NAMESPACE_SEC;					  current->type = "module" ;					  current->fileName  = yyFileName;					  current->startLine = yyLineNr;					  current->bodyLine  = yyLineNr;					  lineCount();  					  BEGIN( CompoundName ); 					}<FindMembers>{B}*"library"{BN}+		{   					  isTypedef=FALSE;					  current->section = Entry::NAMESPACE_SEC;					  current->type = "library" ;					  current->fileName  = yyFileName;					  current->startLine = yyLineNr;					  current->bodyLine  = yyLineNr;					  lineCount();  					  BEGIN( CompoundName ); 					}<FindMembers>{B}*((("disp")?"interface")|"valuetype"){BN}+ 	{ // M$/Corba IDL interface  					  isTypedef=FALSE;					  current->section = Entry::INTERFACE_SEC;					  addType( current ) ;					  current->type += " interface" ;					  current->fileName  = yyFileName;					  current->startLine = yyLineNr;					  current->bodyLine  = yyLineNr;					  lineCount();					  BEGIN( CompoundName );  					}<FindMembers>{B}*"exception"{BN}+ 	{ // Corba IDL exception  					  isTypedef=FALSE;					  current->section = Entry::EXCEPTION_SEC;					  addType( current ) ;					  current->type += " exception" ;					  current->fileName  = yyFileName;					  current->startLine = yyLineNr;					  current->bodyLine  = yyLineNr;					  lineCount();					  BEGIN( CompoundName );  					}<FindMembers>{B}*(("typedef"{BN}+)?)("volatile"{BN}+)?"class"{BN}+ { 					  isTypedef=((QCString)yytext).find("typedef")!=-1;  					  current->section = Entry::CLASS_SEC;					  addType( current ) ;					  current->type += " class" ;					  current->fileName  = yyFileName;					  current->startLine = yyLineNr;					  current->bodyLine  = yyLineNr;					  //if (current->mtArgList) // transfer template arguments					  //{					  //  if (current->tArgList)					  //  {					  //    delete current->tArgList;					  //  }					  //  current->tArgList = current->mtArgList;					  //  current->mtArgList = 0;					  //}					  lineCount() ;					  BEGIN( CompoundName ) ;					}<FindMembers>{B}*(("typedef"{BN}+)?)("volatile"{BN}+)?"struct{" | <FindMembers>{B}*(("typedef"{BN}+)?)("volatile"{BN}+)?"struct"/{BN}+ { 					  isTypedef=((QCString)yytext).find("typedef")!=-1;  					  current->section = Entry::STRUCT_SEC ;					  addType( current ) ;					  current->type += " struct" ;					  current->fileName  = yyFileName;					  current->startLine = yyLineNr;					  current->bodyLine  = yyLineNr;					  //if (current->mtArgList) // transfer template arguments					  //{					  //  if (current->tArgList)					  //  {					  //    delete current->tArgList;					  //  }					  //  current->tArgList = current->mtArgList;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -