2
이 문제는 pyparsing
및 python 2.7의 일반적인 문제입니다 (3에서 잘 작동 함). 일반적인 구조는 이것이다 :python 2.7에서 setParseAction 메서드를 사용하면 예외가 throw됩니다.
Parsing error : some_action() takes exactly 4 arguments (1 given)
내 질문이 두 버전에서 작동하는 방법입니다 얻을 2.7에서 잘 작동 pyparsing
python3에서
class SomeParser(object):
def some_action(self, string, loc, tok):
print("action")
def gramma(self):
...pyparsing gramma for some
language....
some_rule = (token + token2).setParseAction(self.some_action)
return some_rule
def parse(self, string):
self.gramma().parseString(string)
return True
?
편집 : 일부 테스트 후 나는 그것이 클래스 메쏘드뿐만 아니라 일반적인 문제라는 것을 발견했다.
예, 필자는 '_trim_arity' 함수가 pyparsing에서 많은 자극적 오류를 일으키는 것을 발견했습니다. – BrenBarn
트렁크에서 @BrenBarn fortunatelly이 문제가 수정되었으며, 잠시 동안 최적화되어 있다고 생각합니다. 그 동안은 좋은 해결 방법입니다. – Darek