私は字句解析ツールを書いています。それは英語の文字列を取り、それを緯度経度座標に変換します。それはGoogle Earthのようなものです。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_)
これは解析し、BUT degLat_とdegLong_値は文字列値と一緒に逆転されていません。文字列ラベルに関係なく、構造体に直接解析されます。
解析するデータがシーケンシャルでない場合、どのようにstruct(またはboost :: fusion vector)をビルドするのですか?