2011-02-28 5 views
-1

yaml에는 merge라는 멋진 기능이 있기 때문에 사용할 예정입니다! ("< <"키)YAML을위한 대체 스크립트는 무엇입니까?

그리고 나는 cpp에서 일하고 있기 때문에 파서에 'yaml-cpp'를 사용하고 있습니다.

하지만! yaml-cpp는 병합을 지원하지 않습니다. 대안을 위해 무엇을 할 수 있습니까?

다른 스크립트, 다른 구문 분석기, 다른 방법으로 구문 분석 또는 병합 기능을 사용할 수있는 경우 좋은 것입니다.

하지만 두 개 이상의 개체를 병합 할 필요가 없습니다. 난 그냥 무언가를 정의하고 첫 번째 인스턴스에서 상속받은 다른 객체를 만들고 일부 값을 무시해야합니다. 그것은 그.

읽어 주셔서 감사합니다.

+0

이것은 분명히 [이전 질문] (http://stackoverflow.com/questions/5101542/script-that-support-merge-feature-like-yaml)의 "범프"입니다. 이전에는 답변을 얻지 못해 죄송합니다. 해결책은 중복 된 사람들의 시간 낭비가 아니라 편집하는 것입니다. –

+0

글쎄, 나는이 질문을 게시하기 전에 그것을 삭제했다. 그리고 당신의 연결은 지금 끊긴다. 제 이전 질문을 어떻게 찾았는지 모르겠습니다. 어쩌면 삭제 된 것으로 표시된 후에 삭제 될 수 있습니다. 이 질문을 다시 게시하는 여전히 나쁜 방법입니까? 이전 하나를 편집하고 오래된 것을 삭제하고 새로운 질문을 게시하는 것의 차이점은 무엇입니까? 제 목적은 제 질문을 첫 페이지에 넣는 것이 었습니다. 이전 질문 편집도 같은 방식입니까? – SeniorLee

+0

링크가 깨져 있지 않으면 볼 수있는 평판이 없습니다. 내가 말했듯이 사람들의 시간을 낭비하기 때문에 나쁘다. 이전 질문을 읽은 사람들은 추가 정보를 제공하지 않는 새로운 질문을 봅니다. 앞 페이지에는 진정으로 새로운 질문이 있습니다. –

답변

0

기다릴 수없는 및 병합이 필요하면, 당신은 YAML-CPP 문제의 "의 0 Barma"에 의해 제안을 따를 수 : http://code.google.com/p/yaml-cpp/issues/detail?id=41#c12

변화는 FindValueForKey 템플릿에 아래 라인을 삽입하는 것입니다

() - 용 루프 사이 return 0 :

const Node *pValueMerge = FindValueForKey(std::string("<<")); 
if(pValueMerge) { 
    return pValueMerge->FindValueForKey(key); 
} 

문제 (I 문제 페이지에 언급 된 바와 같이) 사양 허용한다는 것이다

여러 사전을 병합합니다. 그러나 당신은 그것이 필요하지 않은 것처럼 보입니다.

+0

나는 이것을 시도했지만 그것은 무한 루프로 보인다. 어쩌면이 코드를 어딘가에 잘못 두었을 수도 있습니다. 이거 해봐? 정말 효과가 있습니까? 다시 시도해야 할 수도 있습니다 – SeniorLee

+0

그리고 더 많은 일이 일어나더라도, 노드를 반복하는 것은 지원되지 않습니까? 이 코드는 키로 찾을 때만 작동합니다. – SeniorLee

+0

@SeniorLee - 먼저이 기능이 실제로 작동합니까? (나는 대답을 받아 들였지만 그 주석을 게시했기 때문에 확신 할 수 없다.) 둘째, 명시 적으로 그렇게하지 않는 한 병합 된 노드를 반복 할 수 없다. –

0

'yaml-cpp'에게 기능 구현을 요청하십시오.

+0

이 문제에 대한 공개 문제가 이미 있습니다 (2009 년 이후로 개설 됨). 그리고 구현 될 때까지 기다릴 시간이 없습니다. 감사. – SeniorLee

관련 문제