我正在写一个lexigraphical分析器。它需要一个英文字符串,并将其转换为一组纬度/经度坐标。这有点像谷歌地球。boost :: spirit :: qi和乱序变量
不管怎么说,我写我的符号表和语法,它高兴地解析格式的数据。
struct LatLongDegrees
{
std::string dirLat_;
double degLat_;
std::string dirLong_;
double degLong_;
}
例如:{ “北”,23.59, “东”,-30.82}
这里是我的语法:
basic =(latitude >> ' ' >> double_ >> ' ' >> longitude >> ' ' >> double_);
其中经线和纬线是从地图符号表速记罗盘方向为字符串(例如,“E”,以“东”)
所以,关于我的问题:
我想下面的规则添加到我的语法,这里的纬度和经度符号相反的位置:
reversed = (longitude >> ' ' >> double_ >> ' ' >> latitude >> double_)
这种分析,但degLat_和degLong_值不与字符串值一起反转。它们只是直接解析到结构中,而不考虑字符串标签。
如何建立一个结构(或升压::融合表达载体)时,要分析的数据不连续?