Blame src/doctokenizer.h

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