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