양식이 이고 pyparsing이 적절한 토큰을 반환하지만 실제 텍스트를 가져 오는 데 관심이 있으며 어떻게 찾을 수 없습니까?pyparsing 토큰에서 원본 텍스트를 얻는 방법
함수를 사용하여 setParseAction을 시도했지만 문자열과 위치 만 반환하기 때문에 후행 부분을 처리 할 수 없습니다. 처럼, 난 단지 얻을 것이다 :
"sum(value2,value3)), "sumname")"
"sum(value1,sum(value2,value3)), "sumname")"
"name(sum(value1,sum(value2,value3)), "sumname")"
을 그리고이 적합하지 않습니다, 나는 실제 원래 문자열을 얻기 위해 수동으로 문자열을 재분석하고 싶지 않아요.
내가 기압을 시도하고 방법은 다음과 같습니다
tokens = grammar.parseString(target_string)
print >>sys.stderr, pyparsing.originalTextFor(tokens)
을하지만이 정말하지 않는 일 :
AttributeError: 'NoneType' object has no attribute 'setParseAction'
안녕을 나를 위해 실패한다'tokens = grammar.parseString (target_string)' 'print >> sys.stderr, pyparsing.originalTextFor (tokens)'나는 그것이 의심 스럽다 parseStrin g는 ParseResults를 반환하고 ParseElements는 반환하지 않습니다. –
'originalTextFor'는 결과가 아닌 문법을 래핑합니다. 'originalTextFor (문법) .parseString (토큰)'을 시도하십시오. – PaulMcG
나는 그것을 본다. 그러나 아직, 당신은 항상 원래의 문자열을 제공하고 있고, 가지고있는 것은 모두 parseString의 결과이고, 나는 문자열을 다시 필요로한다. 당신은 문자열을 parseString에 넘겨주고, 이해가되지만, 토큰이없는 문자열 만 있습니다. –