Go to the documentation of this file.
29 #ifndef __TERRALIB_GEOMETRY_INTERNAL_WKTPARSER_H
30 #define __TERRALIB_GEOMETRY_INTERNAL_WKTPARSER_H
36 #include <boost/bind/bind.hpp>
37 #include <boost/spirit/include/qi.hpp>
44 namespace qi = boost::spirit::qi;
45 namespace ascii = boost::spirit::ascii;
61 template<
typename Iterator>
62 class WKTParser :
public qi::grammar<Iterator, ascii::space_type>
95 empty = no_case[
"empty"] >> !char_;
188 #if BOOST_VERSION < 106000
566 qi::rule<Iterator, ascii::space_type>
empty;
575 #endif // __TERRALIB_GEOMETRY_INTERNAL_WKTPARSER_H
qi::rule< Iterator, ascii::space_type > tinMTxt
qi::rule< Iterator, ascii::space_type > multiLineStringMTagged
void initMultiPoint()
Initializes multi point rules.
qi::rule< Iterator, ascii::space_type > empty
qi::rule< Iterator, ascii::space_type > polyhedralSurfaceZTxt
qi::rule< Iterator, ascii::space_type > geometry
qi::rule< Iterator, ascii::space_type > lineStringZTagged
void initGeometries()
Initializes geometry tagged rules.
void createGeometryCollection()
Geometry * getGeometry()
It returns the geometry generated by the parser process.
void initPolyhedralSurface()
Initializes polyhedral surface rules.
void createMultiPolygonM()
qi::rule< Iterator, ascii::space_type > tinZMTxt
Geometry * getGeometry()
It returns the geometry generated by the parser process.
qi::rule< Iterator, ascii::space_type > geometryCollectionMTxt
qi::rule< Iterator, ascii::space_type > multiPointZTagged
qi::rule< Iterator, ascii::space_type > multiPolygonTagged
void createPolyhedralSurfaceM()
qi::rule< Iterator, ascii::space_type > polygonTxt
qi::rule< Iterator, ascii::space_type > polyhedralSurfaceTxt
void createMultiPolygonZ()
qi::rule< Iterator, ascii::space_type > multiPointMTagged
qi::rule< Iterator, ascii::space_type > geometryCollectionTxt
qi::rule< Iterator, ascii::space_type > polygonZTagged
qi::rule< Iterator, ascii::space_type > pointTxt
qi::rule< Iterator, ascii::space_type > polygonMTxt
qi::rule< Iterator, ascii::space_type > triangleTagged
qi::rule< Iterator, ascii::space_type > tinTagged
qi::rule< Iterator, ascii::space_type > pointZMTagged
A class that implements the semanthic actions to grammar rules for well known text (WKT) format for S...
void initTriangle()
Initializes triangle rules.
qi::rule< Iterator, ascii::space_type > lineStringTxt
qi::rule< Iterator, ascii::space_type > pointTagged
void reset()
This method resets the Parser to original state.
void createGeometryCollectionZ()
void initCoordinates()
Initializes coordinates rules.
qi::rule< Iterator, ascii::space_type > multiPointZMTagged
qi::rule< Iterator, ascii::space_type > multiLineStringZTagged
qi::rule< Iterator, ascii::space_type > polygonMTagged
qi::rule< Iterator, ascii::space_type > multiPointZTxt
qi::rule< Iterator, ascii::space_type > geometryMTagged
qi::rule< Iterator, ascii::space_type > lineStringTagged
qi::rule< Iterator, ascii::space_type > geometryTagged
qi::rule< Iterator, ascii::space_type > multiPolygonZMTagged
qi::rule< Iterator, ascii::space_type > polygonZTxt
A class that implements the Grammar Rules for well known text (WKT) format for Geometry.
qi::rule< Iterator, ascii::space_type > lineStringZMTxt
void initGeometriesZ()
Initializes geometries z tagged rules.
qi::rule< Iterator, ascii::space_type > geometryCollectionZMTagged
qi::rule< Iterator, ascii::space_type > lineStringZMTagged
void createPolyhedralSurfaceZ()
void createMultiLineStringZ()
qi::rule< Iterator, ascii::space_type > geometryCollectionZTxt
qi::rule< Iterator, ascii::space_type > multiPolygonZTxt
qi::rule< Iterator, ascii::space_type > pointMTxt
qi::rule< Iterator, ascii::space_type > pointZTxt
qi::rule< Iterator, ascii::space_type > geometryCollectionZMTxt
qi::rule< Iterator, ascii::space_type > multiPointTagged
qi::rule< Iterator, ascii::space_type > lineStringMTagged
qi::rule< Iterator, ascii::space_type > triangleZTxt
qi::rule< Iterator, ascii::space_type > polyhedralSurfaceZMTxt
qi::rule< Iterator, ascii::space_type > pointZMTxt
void initPolygon()
Initializes polygon rules.
qi::rule< Iterator, ascii::space_type > geometryZMTagged
qi::rule< Iterator, ascii::space_type > triangleZTagged
void createMultiPointZM()
qi::rule< Iterator, ascii::space_type > triangleMTxt
qi::rule< Iterator, ascii::space_type > polygonTagged
void initLine()
Initializes line rules.
qi::rule< Iterator, ascii::space_type > linearRingMTxt
qi::rule< Iterator, ascii::space_type > triangleMTagged
qi::rule< Iterator, ascii::space_type > multiPointTxt
qi::rule< Iterator, ascii::space_type > tinZTxt
qi::rule< Iterator, ascii::space_type > pointMTagged
void initGeometriesZM()
Initializes geometries zm tagged rules.
qi::rule< Iterator, ascii::space_type > geometryZTagged
qi::rule< Iterator, ascii::space_type > multiPolygonTxt
qi::rule< Iterator, ascii::space_type > tinTxt
qi::rule< Iterator, ascii::space_type > tinZMTagged
qi::rule< Iterator, ascii::space_type > multiLineStringZMTxt
void createMultiLineString()
qi::rule< Iterator, ascii::space_type > pointZTagged
qi::rule< Iterator, ascii::space_type > linearRingZMTxt
qi::rule< Iterator, ascii::space_type > triangleZMTagged
void reset()
This method resets the Action class to original state.
qi::rule< Iterator, ascii::space_type > lineStringZTxt
qi::rule< Iterator, ascii::space_type > polyhedralSurfaceZTagged
qi::rule< Iterator, ascii::space_type > multiLineStringZTxt
qi::rule< Iterator, ascii::space_type > lineStringMTxt
void initTIN()
Initializes TIN rules.
qi::rule< Iterator, ascii::space_type > multiLineStringTagged
void initMultiLine()
Initializes multi line rules.
void initGeometriesM()
Initializes geometries m tagged rules.
qi::rule< Iterator, ascii::space_type > linearRingTxt
void createGeometryCollectionM()
void createGeometryCollectionZM()
qi::rule< Iterator, ascii::space_type > polyhedralSurfaceTagged
qi::rule< Iterator, ascii::space_type > tinZTagged
qi::rule< Iterator, ascii::space_type > coordinateZM
qi::rule< Iterator, ascii::space_type > polyhedralSurfaceMTxt
void initMultiPolygon()
Initializes multi polygon rules.
WKTParser()
Default constructor.
void initGeometryCollection()
Initializes geometry collection rules.
void createMultiLineStringZM()
qi::rule< Iterator, ascii::space_type > multiPointZMTxt
qi::rule< Iterator, ascii::space_type > polyhedralSurfaceZMTagged
qi::rule< Iterator, ascii::space_type > multiLineStringMTxt
qi::rule< Iterator, ascii::space_type > coordinateZ
qi::rule< Iterator, ascii::space_type > polygonZMTxt
void createMultiLineStringM()
void createPolyhedralSurface()
qi::rule< Iterator, ascii::space_type > tinMTagged
void createLinearRingZM()
void createMultiPolygonZM()
qi::rule< Iterator, ascii::space_type > geometryCollectionZTagged
qi::rule< Iterator, ascii::space_type > multiPolygonZTagged
qi::rule< Iterator, ascii::space_type > multiPolygonMTxt
qi::rule< Iterator, ascii::space_type > geometryCollectionMTagged
qi::rule< Iterator, ascii::space_type > multiLineStringTxt
qi::rule< Iterator, ascii::space_type > multiLineStringZMTagged
qi::rule< Iterator, ascii::space_type > linearRingZTxt
qi::rule< Iterator, ascii::space_type > triangleTxt
void createPolyhedralSurfaceZM()
void initPoint()
Initializes point rules.
Geometry is the root class of the geometries hierarchy, it follows OGC and ISO standards.
qi::rule< Iterator, ascii::space_type > geometryCollectionTagged
void createMultiPolygon()
qi::rule< Iterator, ascii::space_type > coordinateM
qi::rule< Iterator, ascii::space_type > multiPolygonZMTxt
qi::rule< Iterator, ascii::space_type > multiPolygonMTagged
qi::rule< Iterator, ascii::space_type > multiPointMTxt
qi::rule< Iterator, ascii::space_type > polygonZMTagged
qi::rule< Iterator, ascii::space_type > polyhedralSurfaceMTagged
qi::rule< Iterator, ascii::space_type > coordinate
qi::rule< Iterator, ascii::space_type > triangleZMTxt