Tôi đang viết một bộ phân tích từ vựng. Nó có một chuỗi tiếng Anh, và chuyển đổi nó thành một tập hợp các tọa độ vĩ độ/kinh độ. Nó hơi giống Google Earth.boost :: spirit :: qi và các biến ngoài dãy số
Dù sao, tôi đã viết các bảng biểu tượng và ngữ pháp của mình, và nó phân tích dữ liệu định dạng một cách hạnh phúc.
struct LatLongDegrees
{
std::string dirLat_;
double degLat_;
std::string dirLong_;
double degLong_;
}
Ví dụ: { "Bắc", 23.59, "Đông", -30,82}
Đây là ngữ pháp của tôi:
basic =(latitude >> ' ' >> double_ >> ' ' >> longitude >> ' ' >> double_);
đâu vĩ độ và kinh độ là bảng biểu tượng mà bản đồ từ hướng dẫn viết tắt của la bàn đến các chuỗi (ví dụ: "e" đến "Đông")
Vì vậy, cho câu hỏi của tôi:
Tôi muốn thêm các quy tắc sau vào ngữ pháp của tôi, nơi vĩ độ và kinh độ ký tự là ở các vị trí ngược lại:
reversed = (longitude >> ' ' >> double_ >> ' ' >> latitude >> double_)
này phân tích, NHƯNG các giá trị degLat_ và degLong_ không đảo ngược cùng với các giá trị chuỗi. Chúng được phân tích cú pháp trực tiếp vào cấu trúc, không quan tâm đến các nhãn chuỗi.
Làm cách nào để tạo cấu trúc (hoặc tăng :: vector kết hợp) khi dữ liệu được phân tích cú pháp không phải là tuần tự?