HTML Tidy  5.7.0
The HTACG Tidy HTML Project
lexer.h File Reference

Go to the source code of this file.

Data Structures

struct  AttVal
 
struct  IStack
 
struct  Lexer
 
struct  Node
 
struct  TagStyle
 
struct  StyleProp
 

Macros

#define CM_BLOCK   (1 << 3)
 
#define CM_DEFLIST   (1 << 6)
 
#define CM_EMPTY   (1 << 0)
 
#define CM_FIELD   (1 << 10)
 
#define CM_FRAMES   (1 << 13)
 
#define CM_HEAD   (1 << 2)
 
#define CM_HEADING   (1 << 14)
 
#define CM_HTML   (1 << 1)
 
#define CM_IMG   (1 << 16)
 
#define CM_INLINE   (1 << 4)
 
#define CM_LIST   (1 << 5)
 
#define CM_MIXED   (1 << 17)
 
#define CM_NEW   (1 << 20)
 
#define CM_NO_INDENT   (1 << 18)
 
#define CM_OBJECT   (1 << 11)
 
#define CM_OBSOLETE   (1 << 19)
 
#define CM_OMITST   (1 << 21)
 
#define CM_OPT   (1 << 15)
 
#define CM_PARAM   (1 << 12)
 
#define CM_ROW   (1 << 9)
 
#define CM_ROWGRP   (1 << 8)
 
#define CM_TABLE   (1 << 7)
 
#define CM_UNKNOWN   0
 
#define digit   1u
 
#define digithex   128u
 
#define H40F   16u
 
#define H40S   4u
 
#define H40T   8u
 
#define H41F   128u
 
#define H41S   32u
 
#define H41T   64u
 
#define HT20   1u
 
#define HT32   2u
 
#define HT50   131072u
 
#define letter   2u
 
#define lowercase   32u
 
#define namechar   4u
 
#define newline   16u
 
#define uppercase   64u
 
#define VERS_ALL   (VERS_HTML20|VERS_HTML32|VERS_FROM40|XH50|HT50)
 
#define VERS_BASIC   (XB10)
 
#define VERS_EVENTS   (VERS_HTML40|VERS_XHTML11)
 
#define VERS_FRAMESET   (H40F|H41F|X10F)
 
#define VERS_FROM32   (VERS_HTML32|VERS_HTML40|HT50)
 
#define VERS_FROM40   (VERS_HTML40|VERS_XHTML11|VERS_BASIC|VERS_HTML5)
 
#define VERS_HTML20   (HT20)
 
#define VERS_HTML32   (HT32)
 
#define VERS_HTML40   (VERS_HTML40_STRICT|VERS_HTML40_LOOSE|VERS_FRAMESET)
 
#define VERS_HTML40_LOOSE   (H40T|H41T|X10T)
 
#define VERS_HTML40_STRICT   (H40S|H41S|X10S)
 
#define VERS_HTML5   (HT50|XH50)
 
#define VERS_IFRAME   (VERS_HTML40_LOOSE|VERS_FRAMESET)
 
#define VERS_LOOSE   (VERS_HTML20|VERS_HTML32|VERS_IFRAME)
 
#define VERS_MICROSOFT   32768u
 
#define VERS_NETSCAPE   16384u
 
#define VERS_PROPRIETARY   (VERS_NETSCAPE|VERS_MICROSOFT|VERS_SUN)
 
#define VERS_STRICT   (VERS_HTML5|VERS_HTML40_STRICT)
 
#define VERS_SUN   8192u
 
#define VERS_UNKNOWN   (xxxx)
 
#define VERS_XHTML   (X10S|X10T|X10F|XH11|XB10|XH50)
 
#define VERS_XHTML11   (XH11)
 
#define VERS_XML   65536u
 
#define white   8u
 
#define X10F   1024u
 
#define X10S   256u
 
#define X10T   512u
 
#define XB10   4096u
 
#define XH11   2048u
 
#define XH50   262144u
 
#define xxxx   0u
 

Enumerations

enum  GetTokenMode {
  IgnoreWhitespace,
  MixedContent,
  Preformatted,
  IgnoreMarkup,
  OtherNamespace,
  CdataContent
}
 
enum  LexerState {
  LEX_CONTENT,
  LEX_GT,
  LEX_ENDTAG,
  LEX_STARTTAG,
  LEX_COMMENT,
  LEX_DOCTYPE,
  LEX_PROCINSTR,
  LEX_CDATA,
  LEX_SECTION,
  LEX_ASP,
  LEX_JSTE,
  LEX_PHP,
  LEX_XMLDECL
}
 
enum  NodeType {
  RootNode,
  DocTypeTag,
  CommentTag,
  ProcInsTag,
  TextNode,
  StartTag,
  EndTag,
  StartEndTag,
  CDATATag,
  SectionTag,
  AspTag,
  JsteTag,
  PhpTag,
  XmlDecl
}
 
enum  ParseDocTypeDeclState {
  DT_INTERMEDIATE,
  DT_DOCTYPENAME,
  DT_PUBLICSYSTEM,
  DT_QUOTEDSTRING,
  DT_INTSUBSET
}
 

Functions

void TY_❪AddCharToLexer❫ (Lexer *lexer, uint c)
 
Bool TY_❪AddGenerator❫ (TidyDocImpl *doc)
 
void TY_❪AddStringLiteral❫ (Lexer *lexer, ctmbstr str)
 
uint TY_❪ApparentVersion❫ (TidyDocImpl *doc)
 
Node * TY_❪CloneNode❫ (TidyDocImpl *doc, Node *element)
 
void TY_❪ConstrainVersion❫ (TidyDocImpl *doc, uint vers)
 
void TY_❪DeferDup❫ (TidyDocImpl *doc)
 
void TY_❪DetachAttribute❫ (Node *node, AttVal *attr)
 
AttVal * TY_❪DupAttrs❫ (TidyDocImpl *doc, AttVal *attrs)
 
Node * TY_❪FindBody❫ (TidyDocImpl *doc)
 
Node * TY_❪FindContainer❫ (Node *node)
 
Node * TY_❪FindDocType❫ (TidyDocImpl *doc)
 
Node * TY_❪FindHEAD❫ (TidyDocImpl *doc)
 
Node * TY_❪FindHTML❫ (TidyDocImpl *doc)
 
Node * TY_❪FindTITLE❫ (TidyDocImpl *doc)
 
Node * TY_❪FindXmlDecl❫ (TidyDocImpl *doc)
 
Bool TY_❪FixDocType❫ (TidyDocImpl *doc)
 
Bool TY_❪FixXmlDecl❫ (TidyDocImpl *doc)
 
void TY_❪FreeAttribute❫ (TidyDocImpl *doc, AttVal *av)
 
void TY_❪FreeAttrs❫ (TidyDocImpl *doc, Node *node)
 
void TY_❪FreeLexer❫ (TidyDocImpl *doc)
 
void TY_❪FreeNode❫ (TidyDocImpl *doc, Node *node)
 
Node * TY_❪GetToken❫ (TidyDocImpl *doc, GetTokenMode mode)
 
ctmbstr TY_❪HTMLVersionNameFromCode❫ (uint vers, Bool isXhtml)
 
uint TY_❪HTMLVersionNumberFromCode❫ (uint vers)
 
int TY_❪HTMLVersion❫ (TidyDocImpl *doc)
 
Node * TY_❪InferredTag❫ (TidyDocImpl *doc, TidyTagId id)
 
void TY_❪InitMap❫ (void)
 
Bool TY_❪InlineDup1❫ (TidyDocImpl *doc, Node *node, Node *element)
 
int TY_❪InlineDup❫ (TidyDocImpl *doc, Node *node)
 
void TY_❪InsertAttributeAtEnd❫ (Node *node, AttVal *av)
 
void TY_❪InsertAttributeAtStart❫ (Node *node, AttVal *av)
 
Node * TY_❪InsertedToken❫ (TidyDocImpl *doc)
 
Bool TY_❪IsDigit❫ (uint c)
 
Bool TY_❪IsHTMLSpace❫ (uint c)
 
Bool TY_❪IsLetter❫ (uint c)
 
Bool TY_❪IsNamechar❫ (uint c)
 
Bool TY_❪IsNewline❫ (uint c)
 
Bool TY_❪IsPushedLast❫ (TidyDocImpl *doc, Node *element, Node *node)
 
Bool TY_❪IsPushed❫ (TidyDocImpl *doc, Node *node)
 
Bool TY_❪IsUpper❫ (uint c)
 
Bool TY_❪IsWhite❫ (uint c)
 
Bool TY_❪IsXMLLetter❫ (uint c)
 
Bool TY_❪IsXMLNamechar❫ (uint c)
 
AttVal * TY_❪NewAttributeEx❫ (TidyDocImpl *doc, ctmbstr name, ctmbstr value, int delim)
 
AttVal * TY_❪NewAttribute❫ (TidyDocImpl *doc)
 
Lexer * TY_❪NewLexer❫ (TidyDocImpl *doc)
 
Node * TY_❪NewLineNode❫ (Lexer *lexer)
 
Node * TY_❪NewLiteralTextNode❫ (Lexer *lexer, ctmbstr txt)
 
Node * TY_❪NewNode❫ (TidyAllocator *allocator, Lexer *lexer)
 
void TY_❪PopInline❫ (TidyDocImpl *doc, Node *node)
 
void TY_❪PushInline❫ (TidyDocImpl *doc, Node *node)
 
void TY_❪RemoveAttribute❫ (TidyDocImpl *doc, Node *node, AttVal *attr)
 
Bool TY_❪SetXHTMLDocType❫ (TidyDocImpl *doc)
 
Bool TY_❪SwitchInline❫ (TidyDocImpl *doc, Node *element, Node *node)
 
Node * TY_❪TextToken❫ (Lexer *lexer)
 
uint TY_❪ToLower❫ (uint c)
 
uint TY_❪ToUpper❫ (uint c)
 
void TY_❪UngetToken❫ (TidyDocImpl *doc)
 
Bool TY_❪WarnMissingSIInEmittedDocType❫ (TidyDocImpl *doc)
 

Data Structure Documentation

struct _AttVal
Data Fields
Node * asp
tmbstr attribute
int delim
const Attribute * dict
AttVal * next
Node * php
tmbstr value
struct _IStack
Data Fields
AttVal * attributes
tmbstr element
IStack * next
const Dict * tag
struct _Lexer
Data Fields
TidyAllocator * allocator
Bool bad_doctype
uint columns
uint doctype
Bool excludeBlocks
Bool exiled
Node * inode
IStack * insert
Bool insertspace
IStack * istack
uint istackbase
uint istacklength
uint istacksize
Bool isvoyager
Node * itoken
tmbstr lexbuf
uint lexlength
uint lexsize
uint lines
Node * parent
Bool pushed
Node * root
Bool seenEndBody
Bool seenEndHtml
LexerState state
TagStyle * styles
Node * token
uint txtend
uint txtstart
uint versionEmitted
uint versions
Bool waswhite
struct _Node
Data Fields
AttVal * attributes
Bool closed
uint column
Node * content
tmbstr element
uint end
Bool implicit
Node * last
uint line
Bool linebreak
Node * next
Node * parent
Node * prev
uint start
const Dict * tag
NodeType type
const Dict * was
struct _Style
Data Fields
TagStyle * next
tmbstr properties
tmbstr tag
tmbstr tag_class
struct _StyleProp
Data Fields
tmbstr name
StyleProp * next
tmbstr value

Macro Definition Documentation

#define CM_BLOCK   (1 << 3)
#define CM_DEFLIST   (1 << 6)
#define CM_EMPTY   (1 << 0)
#define CM_FIELD   (1 << 10)
#define CM_FRAMES   (1 << 13)
#define CM_HEAD   (1 << 2)
#define CM_HEADING   (1 << 14)
#define CM_HTML   (1 << 1)
#define CM_IMG   (1 << 16)
#define CM_INLINE   (1 << 4)
#define CM_LIST   (1 << 5)
#define CM_MIXED   (1 << 17)
#define CM_NEW   (1 << 20)
#define CM_NO_INDENT   (1 << 18)
#define CM_OBJECT   (1 << 11)
#define CM_OBSOLETE   (1 << 19)
#define CM_OMITST   (1 << 21)
#define CM_OPT   (1 << 15)
#define CM_PARAM   (1 << 12)
#define CM_ROW   (1 << 9)
#define CM_ROWGRP   (1 << 8)
#define CM_TABLE   (1 << 7)
#define CM_UNKNOWN   0
#define digit   1u
#define digithex   128u
#define H40F   16u
#define H40S   4u
#define H40T   8u
#define H41F   128u
#define H41S   32u
#define H41T   64u
#define HT20   1u
#define HT32   2u
#define HT50   131072u
#define letter   2u
#define lowercase   32u
#define namechar   4u
#define newline   16u
#define uppercase   64u
#define VERS_ALL   (VERS_HTML20|VERS_HTML32|VERS_FROM40|XH50|HT50)
#define VERS_BASIC   (XB10)
#define VERS_EVENTS   (VERS_HTML40|VERS_XHTML11)
#define VERS_FRAMESET   (H40F|H41F|X10F)
#define VERS_FROM32   (VERS_HTML32|VERS_HTML40|HT50)
#define VERS_FROM40   (VERS_HTML40|VERS_XHTML11|VERS_BASIC|VERS_HTML5)
#define VERS_HTML20   (HT20)
#define VERS_HTML32   (HT32)
#define VERS_HTML40_LOOSE   (H40T|H41T|X10T)
#define VERS_HTML40_STRICT   (H40S|H41S|X10S)
#define VERS_HTML5   (HT50|XH50)
#define VERS_IFRAME   (VERS_HTML40_LOOSE|VERS_FRAMESET)
#define VERS_LOOSE   (VERS_HTML20|VERS_HTML32|VERS_IFRAME)
#define VERS_MICROSOFT   32768u
#define VERS_NETSCAPE   16384u
#define VERS_PROPRIETARY   (VERS_NETSCAPE|VERS_MICROSOFT|VERS_SUN)
#define VERS_STRICT   (VERS_HTML5|VERS_HTML40_STRICT)
#define VERS_SUN   8192u
#define VERS_UNKNOWN   (xxxx)
#define VERS_XHTML   (X10S|X10T|X10F|XH11|XB10|XH50)
#define VERS_XHTML11   (XH11)
#define VERS_XML   65536u
#define white   8u
#define X10F   1024u
#define X10S   256u
#define X10T   512u
#define XB10   4096u
#define XH11   2048u
#define XH50   262144u
#define xxxx   0u

Enumeration Type Documentation

Enumerator
IgnoreWhitespace 
MixedContent 
Preformatted 
IgnoreMarkup 
OtherNamespace 
CdataContent 
enum LexerState
Enumerator
LEX_CONTENT 
LEX_GT 
LEX_ENDTAG 
LEX_STARTTAG 
LEX_COMMENT 
LEX_DOCTYPE 
LEX_PROCINSTR 
LEX_CDATA 
LEX_SECTION 
LEX_ASP 
LEX_JSTE 
LEX_PHP 
LEX_XMLDECL 
enum NodeType
Enumerator
RootNode 
DocTypeTag 
CommentTag 
ProcInsTag 
TextNode 
StartTag 
EndTag 
StartEndTag 
CDATATag 
SectionTag 
AspTag 
JsteTag 
PhpTag 
XmlDecl 
Enumerator
DT_INTERMEDIATE 
DT_DOCTYPENAME 
DT_PUBLICSYSTEM 
DT_QUOTEDSTRING 
DT_INTSUBSET 

Function Documentation

void TY_❪AddCharToLexer❫ ( Lexer *  lexer,
uint  c 
)
Bool TY_❪AddGenerator❫ ( TidyDocImpl *  doc)
void TY_❪AddStringLiteral❫ ( Lexer *  lexer,
ctmbstr  str 
)
uint TY_❪ApparentVersion❫ ( TidyDocImpl *  doc)
Node* TY_❪CloneNode❫ ( TidyDocImpl *  doc,
Node *  element 
)
void TY_❪ConstrainVersion❫ ( TidyDocImpl *  doc,
uint  vers 
)
void TY_❪DeferDup❫ ( TidyDocImpl *  doc)
void TY_❪DetachAttribute❫ ( Node *  node,
AttVal *  attr 
)
AttVal* TY_❪DupAttrs❫ ( TidyDocImpl *  doc,
AttVal *  attrs 
)
Node* TY_❪FindBody❫ ( TidyDocImpl *  doc)
Node* TY_❪FindContainer❫ ( Node *  node)
Node* TY_❪FindDocType❫ ( TidyDocImpl *  doc)
Node* TY_❪FindHEAD❫ ( TidyDocImpl *  doc)
Node* TY_❪FindHTML❫ ( TidyDocImpl *  doc)
Node* TY_❪FindTITLE❫ ( TidyDocImpl *  doc)
Node* TY_❪FindXmlDecl❫ ( TidyDocImpl *  doc)
Bool TY_❪FixDocType❫ ( TidyDocImpl *  doc)
Bool TY_❪FixXmlDecl❫ ( TidyDocImpl *  doc)
void TY_❪FreeAttribute❫ ( TidyDocImpl *  doc,
AttVal *  av 
)
void TY_❪FreeAttrs❫ ( TidyDocImpl *  doc,
Node *  node 
)
void TY_❪FreeLexer❫ ( TidyDocImpl *  doc)
void TY_❪FreeNode❫ ( TidyDocImpl *  doc,
Node *  node 
)
Node* TY_❪GetToken❫ ( TidyDocImpl *  doc,
GetTokenMode  mode 
)
ctmbstr TY_❪HTMLVersionNameFromCode❫ ( uint  vers,
Bool  isXhtml 
)
uint TY_❪HTMLVersionNumberFromCode❫ ( uint  vers)
int TY_❪HTMLVersion❫ ( TidyDocImpl *  doc)
Node* TY_❪InferredTag❫ ( TidyDocImpl *  doc,
TidyTagId  id 
)
void TY_❪InitMap❫ ( void  )
Bool TY_❪InlineDup1❫ ( TidyDocImpl *  doc,
Node *  node,
Node *  element 
)
int TY_❪InlineDup❫ ( TidyDocImpl *  doc,
Node *  node 
)
void TY_❪InsertAttributeAtEnd❫ ( Node *  node,
AttVal *  av 
)
void TY_❪InsertAttributeAtStart❫ ( Node *  node,
AttVal *  av 
)
Node* TY_❪InsertedToken❫ ( TidyDocImpl *  doc)
Bool TY_❪IsDigit❫ ( uint  c)
Bool TY_❪IsHTMLSpace❫ ( uint  c)
Bool TY_❪IsLetter❫ ( uint  c)
Bool TY_❪IsNamechar❫ ( uint  c)
Bool TY_❪IsNewline❫ ( uint  c)
Bool TY_❪IsPushedLast❫ ( TidyDocImpl *  doc,
Node *  element,
Node *  node 
)
Bool TY_❪IsPushed❫ ( TidyDocImpl *  doc,
Node *  node 
)
Bool TY_❪IsUpper❫ ( uint  c)
Bool TY_❪IsWhite❫ ( uint  c)
Bool TY_❪IsXMLLetter❫ ( uint  c)
Bool TY_❪IsXMLNamechar❫ ( uint  c)
AttVal* TY_❪NewAttributeEx❫ ( TidyDocImpl *  doc,
ctmbstr  name,
ctmbstr  value,
int  delim 
)
AttVal* TY_❪NewAttribute❫ ( TidyDocImpl *  doc)
Lexer* TY_❪NewLexer❫ ( TidyDocImpl *  doc)
Node* TY_❪NewLineNode❫ ( Lexer *  lexer)
Node* TY_❪NewLiteralTextNode❫ ( Lexer *  lexer,
ctmbstr  txt 
)
Node* TY_❪NewNode❫ ( TidyAllocator *  allocator,
Lexer *  lexer 
)
void TY_❪PopInline❫ ( TidyDocImpl *  doc,
Node *  node 
)
void TY_❪PushInline❫ ( TidyDocImpl *  doc,
Node *  node 
)
void TY_❪RemoveAttribute❫ ( TidyDocImpl *  doc,
Node *  node,
AttVal *  attr 
)
Bool TY_❪SetXHTMLDocType❫ ( TidyDocImpl *  doc)
Bool TY_❪SwitchInline❫ ( TidyDocImpl *  doc,
Node *  element,
Node *  node 
)
Node* TY_❪TextToken❫ ( Lexer *  lexer)
uint TY_❪ToLower❫ ( uint  c)
uint TY_❪ToUpper❫ ( uint  c)
void TY_❪UngetToken❫ ( TidyDocImpl *  doc)
Bool TY_❪WarnMissingSIInEmittedDocType❫ ( TidyDocImpl *  doc)