Orb/Doxygen/src/doctokenizer.h
changeset 0 42188c7ea2d9
child 4 468f4c8d3d5b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Orb/Doxygen/src/doctokenizer.h	Thu Jan 21 17:29:01 2010 +0000
@@ -0,0 +1,151 @@
+/******************************************************************************
+ *
+ * 
+ *
+ *
+ * Copyright (C) 1997-2008 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 <qstring.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
+};
+
+struct TokenInfo
+{
+  // unknown token
+  char unknownChar;
+  
+  // command token
+  QString name;
+
+  // command text (RCS tag)
+  QString text;
+
+  // comment blocks
+  
+  // list token info
+  bool isEnumList;
+  int indent;
+
+  // sections
+  QString sectionId;
+
+  // simple section
+  QString simpleSectName;
+  QString simpleSectText;
+
+  // verbatim fragment
+  QString verb;
+
+  // xrefitem
+  int id;
+
+  // html tag
+  HtmlAttribList attribs;
+  bool endTag;
+  bool emptyTag;
+
+  // whitespace
+  QString 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 doctokenizerYYsetStateVerbatim();
+void doctokenizerYYsetStateDot();
+void doctokenizerYYsetStateMsc();
+void doctokenizerYYsetStateParam();
+void doctokenizerYYsetStateXRefItem();
+void doctokenizerYYsetStateFile();
+void doctokenizerYYsetStatePattern();
+void doctokenizerYYsetStateLink();
+void doctokenizerYYsetStateRef();
+void doctokenizerYYsetStateInternalRef();
+void doctokenizerYYsetStateText();
+void doctokenizerYYsetStateSkipTitle();
+void doctokenizerYYsetInsidePre(bool b);
+void doctokenizerYYpushBackHtmlTag(const char *tag);
+
+#endif