Blame src/doctokenizer.h

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