2012-09-18 3 views
2

임의의 정수에 대해 boost :: spirit :: qi :: grammar를 만들고 싶습니다. 정수를 문자열에 저장하는 것은 정수가 바이너리 형식으로 표현되는 경우 특히 메모리 낭비를 느끼게됩니다. 구조에서 임의의 정밀도 정수 클래스 (예 : GMP 또는 llvm :: APInt)를 사용하려면 어떻게해야합니까?임의 정밀도 정수를 boost :: spirit으로 구문 분석

답변

1

임의의 긴 정수가 포함 된 텍스트 파일을 가지고있는 경우 Qi는 해당 파일을 텍스트 토큰으로 제시되는 개별 숫자로 매우 효율적으로 구문 분석하는 데 확실히 사용될 수 있습니다. 이 토큰을 GMP 번호로 변환하는 방법은 당신에게 달려 있지만, 텍스트를 통해 숫자를 입력하기 위해 라이브러리에서 제공하는 메커니즘이 머리 꼭대기에서 발생할 가능성이있는 것보다 더 최적화되어있는 것이 좋습니다.

Qi가 임의로 긴 숫자를 포함하는 바이너리 파일을 읽도록 조정할 수 있는지 묻는다면, 대답은 '예'입니다. 바이너리 파서에 대한 지원은 이미 여기 있습니다 : http://www.boost.org/doc/libs/1_48_0/libs/spirit/doc/html/spirit/qi/reference/binary.html. 내 생각에 귀하의 대상 수학 lib 형식의 정수 형식이 확실하지 않은데,이 원시 형식을 연결하여 숫자의 이진 표현을 직접 읽을 수 있다는 것입니다. 또는 이들 중 하나를 기반으로 자신의 파서 프리미티브를 디자인 할 수 있습니다.

관련 문제