|
Packit Service |
50c9f2 |
/******************************************************************************
|
|
Packit Service |
50c9f2 |
*
|
|
Packit Service |
50c9f2 |
* $Id: $
|
|
Packit Service |
50c9f2 |
*
|
|
Packit Service |
50c9f2 |
*
|
|
Packit Service |
50c9f2 |
* Copyright (C) 1997-2015 by Dimitri van Heesch.
|
|
Packit Service |
50c9f2 |
*
|
|
Packit Service |
50c9f2 |
* Permission to use, copy, modify, and distribute this software and its
|
|
Packit Service |
50c9f2 |
* documentation under the terms of the GNU General Public License is hereby
|
|
Packit Service |
50c9f2 |
* granted. No representations are made about the suitability of this software
|
|
Packit Service |
50c9f2 |
* for any purpose. It is provided "as is" without express or implied warranty.
|
|
Packit Service |
50c9f2 |
* See the GNU General Public License for more details.
|
|
Packit Service |
50c9f2 |
*
|
|
Packit Service |
50c9f2 |
* Documents produced by Doxygen are derivative works derived from the
|
|
Packit Service |
50c9f2 |
* input used in their production; they are not affected by this license.
|
|
Packit Service |
50c9f2 |
*
|
|
Packit Service |
50c9f2 |
*/
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
#ifndef _DOCTOKENIZER_H
|
|
Packit Service |
50c9f2 |
#define _DOCTOKENIZER_H
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
#include <qcstring.h>
|
|
Packit Service |
50c9f2 |
#include <qlist.h>
|
|
Packit Service |
50c9f2 |
#include <stdio.h>
|
|
Packit Service |
50c9f2 |
#include "htmlattrib.h"
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
class Definition;
|
|
Packit Service |
50c9f2 |
class MemberGroup;
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
enum Tokens
|
|
Packit Service |
50c9f2 |
{
|
|
Packit Service |
50c9f2 |
TK_WORD = 1,
|
|
Packit Service |
50c9f2 |
TK_LNKWORD = 2,
|
|
Packit Service |
50c9f2 |
TK_WHITESPACE = 3,
|
|
Packit Service |
50c9f2 |
TK_LISTITEM = 4,
|
|
Packit Service |
50c9f2 |
TK_ENDLIST = 5,
|
|
Packit Service |
50c9f2 |
TK_COMMAND = 6,
|
|
Packit Service |
50c9f2 |
TK_HTMLTAG = 7,
|
|
Packit Service |
50c9f2 |
TK_SYMBOL = 8,
|
|
Packit Service |
50c9f2 |
TK_NEWPARA = 9,
|
|
Packit Service |
50c9f2 |
TK_RCSTAG = 10,
|
|
Packit Service |
50c9f2 |
TK_URL = 11,
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
RetVal_OK = 0x10000,
|
|
Packit Service |
50c9f2 |
RetVal_SimpleSec = 0x10001,
|
|
Packit Service |
50c9f2 |
RetVal_ListItem = 0x10002,
|
|
Packit Service |
50c9f2 |
RetVal_Section = 0x10003,
|
|
Packit Service |
50c9f2 |
RetVal_Subsection = 0x10004,
|
|
Packit Service |
50c9f2 |
RetVal_Subsubsection = 0x10005,
|
|
Packit Service |
50c9f2 |
RetVal_Paragraph = 0x10006,
|
|
Packit Service |
50c9f2 |
RetVal_SubParagraph = 0x10007,
|
|
Packit Service |
50c9f2 |
RetVal_EndList = 0x10008,
|
|
Packit Service |
50c9f2 |
RetVal_EndPre = 0x10009,
|
|
Packit Service |
50c9f2 |
RetVal_DescData = 0x1000A,
|
|
Packit Service |
50c9f2 |
RetVal_DescTitle = 0x1000B,
|
|
Packit Service |
50c9f2 |
RetVal_EndDesc = 0x1000C,
|
|
Packit Service |
50c9f2 |
RetVal_TableRow = 0x1000D,
|
|
Packit Service |
50c9f2 |
RetVal_TableCell = 0x1000E,
|
|
Packit Service |
50c9f2 |
RetVal_TableHCell = 0x1000F,
|
|
Packit Service |
50c9f2 |
RetVal_EndTable = 0x10010,
|
|
Packit Service |
50c9f2 |
RetVal_Internal = 0x10011,
|
|
Packit Service |
50c9f2 |
RetVal_SwitchLang = 0x10012,
|
|
Packit Service |
50c9f2 |
RetVal_CloseXml = 0x10013,
|
|
Packit Service |
50c9f2 |
RetVal_EndBlockQuote = 0x10014,
|
|
Packit Service |
50c9f2 |
RetVal_CopyDoc = 0x10015,
|
|
Packit Service |
50c9f2 |
RetVal_EndInternal = 0x10016,
|
|
Packit Service |
50c9f2 |
RetVal_EndParBlock = 0x10017
|
|
Packit Service |
50c9f2 |
};
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
/** @brief Data associated with a token used by the comment block parser. */
|
|
Packit Service |
50c9f2 |
struct TokenInfo
|
|
Packit Service |
50c9f2 |
{
|
|
Packit Service |
50c9f2 |
// unknown token
|
|
Packit Service |
50c9f2 |
char unknownChar;
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
// command token
|
|
Packit Service |
50c9f2 |
QCString name;
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
// command text (RCS tag)
|
|
Packit Service |
50c9f2 |
QCString text;
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
// comment blocks
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
// list token info
|
|
Packit Service |
50c9f2 |
bool isEnumList;
|
|
Packit Service |
50c9f2 |
int indent;
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
// sections
|
|
Packit Service |
50c9f2 |
QCString sectionId;
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
// simple section
|
|
Packit Service |
50c9f2 |
QCString simpleSectName;
|
|
Packit Service |
50c9f2 |
QCString simpleSectText;
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
// verbatim fragment
|
|
Packit Service |
50c9f2 |
QCString verb;
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
// xrefitem
|
|
Packit Service |
50c9f2 |
int id;
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
// html tag
|
|
Packit Service |
50c9f2 |
HtmlAttribList attribs;
|
|
Packit Service |
50c9f2 |
bool endTag;
|
|
Packit Service |
50c9f2 |
bool emptyTag;
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
// whitespace
|
|
Packit Service |
50c9f2 |
QCString chars;
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
// url
|
|
Packit Service |
50c9f2 |
bool isEMailAddr;
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
// param attributes
|
|
Packit Service |
50c9f2 |
enum ParamDir { In=1, Out=2, InOut=3, Unspecified=0 };
|
|
Packit Service |
50c9f2 |
ParamDir paramDir;
|
|
Packit Service |
50c9f2 |
};
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
// globals
|
|
Packit Service |
50c9f2 |
extern TokenInfo *g_token;
|
|
Packit Service |
50c9f2 |
extern int doctokenizerYYlineno;
|
|
Packit Service |
50c9f2 |
extern FILE *doctokenizerYYin;
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
// helper functions
|
|
Packit Service |
50c9f2 |
const char *tokToString(int token);
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
// operations on the scanner
|
|
Packit Service |
50c9f2 |
void doctokenizerYYFindSections(const char *input,Definition *d,
|
|
Packit Service |
50c9f2 |
MemberGroup *mg,const char *fileName);
|
|
Packit Service |
50c9f2 |
void doctokenizerYYinit(const char *input,const char *fileName);
|
|
Packit Service |
50c9f2 |
void doctokenizerYYcleanup();
|
|
Packit Service |
50c9f2 |
void doctokenizerYYpushContext();
|
|
Packit Service |
50c9f2 |
bool doctokenizerYYpopContext();
|
|
Packit Service |
50c9f2 |
int doctokenizerYYlex();
|
|
Packit Service |
50c9f2 |
void doctokenizerYYsetStatePara();
|
|
Packit Service |
50c9f2 |
void doctokenizerYYsetStateTitle();
|
|
Packit Service |
50c9f2 |
void doctokenizerYYsetStateTitleAttrValue();
|
|
Packit Service |
50c9f2 |
void doctokenizerYYsetStateCode();
|
|
Packit Service |
50c9f2 |
void doctokenizerYYsetStateXmlCode();
|
|
Packit Service |
50c9f2 |
void doctokenizerYYsetStateHtmlOnly();
|
|
Packit Service |
50c9f2 |
void doctokenizerYYsetStateManOnly();
|
|
Packit Service |
50c9f2 |
void doctokenizerYYsetStateLatexOnly();
|
|
Packit Service |
50c9f2 |
void doctokenizerYYsetStateXmlOnly();
|
|
Packit Service |
50c9f2 |
void doctokenizerYYsetStateDbOnly();
|
|
Packit Service |
50c9f2 |
void doctokenizerYYsetStateRtfOnly();
|
|
Packit Service |
50c9f2 |
void doctokenizerYYsetStateVerbatim();
|
|
Packit Service |
50c9f2 |
void doctokenizerYYsetStateDot();
|
|
Packit Service |
50c9f2 |
void doctokenizerYYsetStateMsc();
|
|
Packit Service |
50c9f2 |
void doctokenizerYYsetStateParam();
|
|
Packit Service |
50c9f2 |
void doctokenizerYYsetStateXRefItem();
|
|
Packit Service |
50c9f2 |
void doctokenizerYYsetStateFile();
|
|
Packit Service |
50c9f2 |
void doctokenizerYYsetStatePattern();
|
|
Packit Service |
50c9f2 |
void doctokenizerYYsetStateLink();
|
|
Packit Service |
50c9f2 |
void doctokenizerYYsetStateCite();
|
|
Packit Service |
50c9f2 |
void doctokenizerYYsetStateRef();
|
|
Packit Service |
50c9f2 |
void doctokenizerYYsetStateInternalRef();
|
|
Packit Service |
50c9f2 |
void doctokenizerYYsetStateText();
|
|
Packit Service |
50c9f2 |
void doctokenizerYYsetStateSkipTitle();
|
|
Packit Service |
50c9f2 |
void doctokenizerYYsetStateAnchor();
|
|
Packit Service |
50c9f2 |
void doctokenizerYYsetInsidePre(bool b);
|
|
Packit Service |
50c9f2 |
void doctokenizerYYpushBackHtmlTag(const char *tag);
|
|
Packit Service |
50c9f2 |
void doctokenizerYYsetStateSnippet();
|
|
Packit Service |
50c9f2 |
void doctokenizerYYstartAutoList();
|
|
Packit Service |
50c9f2 |
void doctokenizerYYendAutoList();
|
|
Packit Service |
50c9f2 |
void doctokenizerYYsetStatePlantUML();
|
|
Packit Service |
50c9f2 |
void doctokenizerYYsetStateSetScope();
|
|
Packit Service |
50c9f2 |
void doctokenizerYYsetStatePlantUMLOpt();
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
#endif
|