파이썬 문법을 내 맘대로 python4ply

그동안 파이썬은
조건 표현
with절같이
문법을 바꿔달라는 수 많은 사용자들의 요청을 받아들여 문법을 추가한 사례가
여럿 있기는 했지만, switch-case나 for-from-to 같이 디자인 상의
일관성 문제로 인해서 받아들여지지 않은 문법도 많이 있었습니다.

요즘 계속 영역-특정적 언어(Domain-specific Language)에 대한 사용처가
늘고 있는데 파이썬을 특정 목적에 쓰자면 종종 대형 프로젝트에서는 문법을
고치는 게 득이 될 경우도 많이 생각할 수 있습니다.
그래서 전처리기를 사용해서 쓰는 방법도 있지만, python4ply는 이걸 좀 더
깔끔한 방법으로 처리하기 위해 등장했습니다.
나온지는 꽤 오래되었지만, 갈 수록 중요한 변환점을 찍은 모듈로
지속적으로 언급되고 있습니다.

원래 PLY는 파이썬에서 lex/yacc를
지원하기 위한 파서 제너레이터인데, python4ply는 PLY에서 파이썬을 파싱하고
그걸로 파이썬 바이트코드를 생성해서 직접 파이썬 코드 파싱/컴파일을 만들었기 때문에
그 부분을 직접 조절할 수 있도록 했습니다.

예를 들면 튜토리얼에서 예제로 들고 있는 것에서 이런 문법도 보여주고 있습니다.

파싱과 컴파일을 모두 건드리고 있으니 문법은 원한다면 얼마든지 바꿀 수 있는데,
python4ply는 소스 구조도 아주 깔끔하게 잘 정리되어 있는 편이라, DSL을 만들어야
하는 상황이라면 언제나 유용하게 쓸 수 있을 듯 합니다.

사실 python4ply가 나온 이후로 python-dev 메일링에 누군가 새로운 문법 뭔가 좀
넣어달라, 또는 파이썬 3에 2.x호환성 좀 넣어달라 요청만 올라오면 python4ply
URL을 누군가 덥썩 던져주고서는 그 다음부터는 무시하는 분위기가 됐지요. :>
누구나 어렵지 않게 할 수 있을 거라고 생각하고 있던거지만, 실제로 구현이 되고나니
영향을 꽤 많이 미치고 있는게 역시 가능하다고 생각만 하고 있는 것과 실제 구현체가
나온 것은 영향력이 차이가 좀 있군요.

1 thought on “파이썬 문법을 내 맘대로 python4ply”

Comments are closed.