Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members

lexer Struct Template Reference

#include <xml_lexer.h>

List of all members.


Detailed Description

template<typename ParserT>
struct lexer< ParserT >

Lexer class for CTTL XML stream parser sample.

ParserT
Template parameter specifying type of parser to be used with this lexer.
The lexer implements XML grammar for simple xml input test, published by the parser performance project: http://paper.sourceforge.net/:

  1:    grammar = node*;
  2:    node = pi | inode_element | text;
  3:    inode_element = openElement node* closeElement | closedElement;
  4:  
  5:    pi = "<?" name (CHARACTER - "?>")* "?>";
  6:  
  7:    openElement = "<" name attr* ">";
  8:    closeElement = "</" name ">";
  9:    closedElement = "<" name attr* "/>";
 10:  
 11:    text = (CHARACTER - '<')+;
 12:  
 13:    attr = name '=' value;
 14:    name = ALPHA (ALPHA | DIGIT | '_' | ':')*;
 15:    value = '"' (CHARACTER - '"')* '"';
 16:  
 17:    - Grammar terminals can be separated by any amount of whitespace.
 18:    - Grammar terminals are "text", "name", "value", and all literals.

Definition at line 77 of file xml_lexer.h.

Public Types

typedef ParserT::universe_T universe_T
 Defines universe type of xml lexer.
typedef universe_T::strict_edge_T strict_universe_T
 Defines strict universe type of xml lexer.

Public Member Functions

 lexer (strict_universe_T &consumed_data_)
 Constructs and initializes the object.
void operator= (lexer< ParserT > const &) const
 Assignment does nothing.
size_t xml_grammar (universe_T &universe_)
 XML grammar start rule: describes a series of nodes at the top level of xml tree.
size_t xml_node (universe_T &universe_)
 XML grammar rule: describes types of xml nodes.
size_t xml_name (universe_T &universe_)
 XML grammar rule: describes name of xml element or attribute.
size_t xml_comment (universe_T &universe_)
 XML grammar rule: describes xml comment construct.
size_t xml_pi (universe_T &universe_)
 XML grammar rule: describes xml processing instruction.
size_t xml_element (universe_T &universe_)
 XML grammar rule: describes xml element.
size_t xml_closeElement (universe_T &universe_)
 XML grammar rule: describes xml closing inode_element.
size_t xml_text (universe_T &universe_)
 XML grammar rule: xml text.
size_t xml_attr (universe_T &universe_)
 XML grammar rule: describes xml attribute.
size_t xml_value (universe_T &universe_)
 XML grammar rule: describes xml attribute value.

Public Attributes

strict_universe_Tconsumed_data
 Reference to edge pointing to the part of the universe that can be safely removed from the input at any time.
strict_universe_T edge_xml_name
 Substring specifying xml name.
strict_universe_T attribute_value
 Substring specifying attribute value.
lambda< inode_writer<
> >::scalar 
inode_text
 Scalar representing xml text node.
lambda< inode_writer<
> >::scalar 
inode_element
 Scalar representing xml element node.
lambda< inode_writer<
> >::scalar 
inode_first
 Scalar representing first xml child node in xml parse tree.
lambda< inode_writer<
> >::scalar 
inode_last
 Scalar representing last xml child node in xml parse tree.
lambda< inode_writer<
> >::scalar 
inode_attribute
 Scalar representing xml attribute node.
lambda< inode_writer<
> >::scalar 
inode_parent
 Scalar representing parent node in xml parse tree.
lambda::scalar id_xml_element
 Temporary storage of xml name id.
lambda::scalar id_attribute_value
 Temporary storage of id of xml attribute value.


Member Typedef Documentation

typedef universe_T::strict_edge_T strict_universe_T
 

Defines strict universe type of xml lexer.

Definition at line 83 of file xml_lexer.h.

typedef ParserT::universe_T universe_T
 

Defines universe type of xml lexer.

Definition at line 80 of file xml_lexer.h.


Constructor & Destructor Documentation

lexer strict_universe_T consumed_data_  )  [inline]
 

Constructs and initializes the object.

Definition at line 122 of file xml_lexer.h.

References attribute_value, consumed_data, edge_xml_name, inode_attribute, inode_element, inode_first, inode_last, inode_parent, and inode_text.


Member Function Documentation

void operator= lexer< ParserT > const &   )  const [inline]
 

Assignment does nothing.

Definition at line 137 of file xml_lexer.h.

size_t xml_attr universe_T universe_  )  [inline]
 

XML grammar rule: describes xml attribute.

Definition at line 379 of file xml_lexer.h.

References id_attribute_value, inode_attribute, inode_element, inode_first, inode_last, xml_name(), and xml_value().

Referenced by xml_element().

size_t xml_closeElement universe_T universe_  )  [inline]
 

XML grammar rule: describes xml closing inode_element.

Definition at line 309 of file xml_lexer.h.

References xml_name().

Referenced by xml_element().

size_t xml_comment universe_T universe_  )  [inline]
 

XML grammar rule: describes xml comment construct.

Definition at line 198 of file xml_lexer.h.

Referenced by xml_node().

size_t xml_element universe_T universe_  )  [inline]
 

XML grammar rule: describes xml element.

Definition at line 240 of file xml_lexer.h.

References inode_element, inode_first, inode_last, inode_parent, xml_attr(), xml_closeElement(), xml_name(), and xml_node().

Referenced by xml_node().

size_t xml_grammar universe_T universe_  )  [inline]
 

XML grammar start rule: describes a series of nodes at the top level of xml tree.

Definition at line 142 of file xml_lexer.h.

References xml_node().

size_t xml_name universe_T universe_  )  [inline]
 

XML grammar rule: describes name of xml element or attribute.

Definition at line 180 of file xml_lexer.h.

References edge_xml_name, and id_xml_element.

Referenced by xml_attr(), xml_closeElement(), xml_element(), and xml_pi().

size_t xml_node universe_T universe_  )  [inline]
 

XML grammar rule: describes types of xml nodes.

Definition at line 156 of file xml_lexer.h.

References consumed_data, xml_comment(), xml_element(), xml_pi(), and xml_text().

Referenced by xml_element(), and xml_grammar().

size_t xml_pi universe_T universe_  )  [inline]
 

XML grammar rule: describes xml processing instruction.

Definition at line 218 of file xml_lexer.h.

References xml_name().

Referenced by xml_node().

size_t xml_text universe_T universe_  )  [inline]
 

XML grammar rule: xml text.

Definition at line 332 of file xml_lexer.h.

References inode_element, inode_first, inode_last, and inode_text.

Referenced by xml_node().

size_t xml_value universe_T universe_  )  [inline]
 

XML grammar rule: describes xml attribute value.

Definition at line 429 of file xml_lexer.h.

References attribute_value.

Referenced by xml_attr().


Member Data Documentation

strict_universe_T attribute_value
 

Substring specifying attribute value.

Definition at line 92 of file xml_lexer.h.

Referenced by lexer(), and xml_value().

strict_universe_T& consumed_data
 

Reference to edge pointing to the part of the universe that can be safely removed from the input at any time.

Definition at line 86 of file xml_lexer.h.

Referenced by lexer(), and xml_node().

strict_universe_T edge_xml_name
 

Substring specifying xml name.

Definition at line 89 of file xml_lexer.h.

Referenced by lexer(), and xml_name().

lambda ::scalar id_attribute_value
 

Temporary storage of id of xml attribute value.

Definition at line 118 of file xml_lexer.h.

Referenced by xml_attr().

lambda ::scalar id_xml_element
 

Temporary storage of xml name id.

Definition at line 115 of file xml_lexer.h.

Referenced by xml_name().

lambda< inode_writer<> >::scalar inode_attribute
 

Scalar representing xml attribute node.

Definition at line 107 of file xml_lexer.h.

Referenced by lexer(), and xml_attr().

lambda< inode_writer<> >::scalar inode_element
 

Scalar representing xml element node.

Definition at line 98 of file xml_lexer.h.

Referenced by lexer(), xml_attr(), xml_element(), and xml_text().

lambda< inode_writer<> >::scalar inode_first
 

Scalar representing first xml child node in xml parse tree.

Definition at line 101 of file xml_lexer.h.

Referenced by lexer(), xml_attr(), xml_element(), and xml_text().

lambda< inode_writer<> >::scalar inode_last
 

Scalar representing last xml child node in xml parse tree.

Definition at line 104 of file xml_lexer.h.

Referenced by lexer(), xml_attr(), xml_element(), and xml_text().

lambda< inode_writer<> >::scalar inode_parent
 

Scalar representing parent node in xml parse tree.

Definition at line 110 of file xml_lexer.h.

Referenced by lexer(), and xml_element().

lambda< inode_writer<> >::scalar inode_text
 

Scalar representing xml text node.

Definition at line 95 of file xml_lexer.h.

Referenced by lexer(), and xml_text().


The documentation for this struct was generated from the following file:
Generated on Thu Nov 2 17:43:31 2006 for CTTL XML stream parser sample by  doxygen 1.3.9.1