저는 C++로 프로젝트를 코딩하고 있으며, 텍스트 파일 (usergrammar.txt)을 인간이 읽고 쓸 수있는 형태로 작성하는 사용자 정의 문법을 찾고 있습니다. 객체를 정의합니다.런타임에 문법로드
이 작업을 마치면 코드에서 이러한 개체 중 일부를 인스턴스화하고 다른 파일 (instances.txt)에 만든 인스턴스를 항상 인간이 액세스 할 수있는 형식으로 저장할 수 있기를 바랍니다. 이 두 번째 파일은 첫 번째 파일이 올바르게 읽혀 지는지 분명히 다릅니다.
문제가있는 것은 문법을 정의하고 파싱하는 방법입니다. 나는 Boost :: Spirit을보고 있었지만 첫 번째 파일을 읽는 데 좋은 일을하는 반면 (규칙은 미리 정의되어 있기 때문에), Spirit 문법 만 정의되기 때문에 두 번째 파일에는 적용 할 수 없다고 생각합니다. 컴파일 시간과 런타임에로드 할 수 없습니다 (적어도 내가 이해할 수있는).
이제는 ENBF 형식에 대해 읽었지만 언어 규칙뿐 아니라 각 개체마다 다른 이름/설명/옵션이 포함될 때마다 문제가 발생합니다. (예를 들어, 개체 색상이있는 경우 내부의 정수는 빨간색, 파란색, yello로 표시되고 개체는 눈금자이면 정수로 길이가 지정됩니다.) 그래서이 정보를 파일뿐만 아니라 해당 값과 올바르게 연관되도록합니다.
이런 프로젝트에 대해보고, 연구하고, 사용하고 /해야 할 것에 대한 조언이 있습니까? 미리 감사드립니다.
당신이 염두에두고있는 일반적인 형식은 무엇입니까? XML을 사용하면 효과가 있습니까? –