Following system colour scheme Selected dark colour scheme Selected light colour scheme

Python 개선 제안 한국어 번역

PEP 306 – Python 문법을 변경하는 방법

Author:
Michael Hudson <mwh at python.net>, Jack Diederich <jackdied at gmail.com>, Alyssa Coghlan <ncoghlan at gmail.com>, Benjamin Peterson <benjamin at python.org>
Status:
Withdrawn
Type:
Informational
Created:
29-Jan-2003
Post-History:
30-Jan-2003

Table of Contents

번역·라이선스 안내

이 비공식 한국어 번역은 원문 Copyright 절의 Public Domain 조건에 따라 제공합니다. 원저자와 공식 원문은 그대로 표시합니다. 수정되지 않은 기준 원문 · 공식 최신판

참고

이 PEP는 Python 개발자 가이드로 옮겨졌습니다 [1].

초록

Python 문법을 변경하려면 Grammar/Grammar와 Python/compile.c를 편집하는 것보다 더 많은 작업이 필요합니다. 이 PEP는 함께 수정해야 하는 곳들의 체크리스트가 되는 것을 목표로 합니다.

아마 완전하지는 않을 것입니다. 빠진 부분을 발견하면 가능한 경우 직접 추가하십시오. 그렇게 해도 작성자의 소유 의식을 해치지 않습니다. 그렇지 않으면 버그나 패치를 제출하고 mwh에게 할당하십시오.

이 PEP는 여러 가지 이유로 Python 문법 해킹에 관한 사용 설명서를 의도하지 않습니다.

근거

사람들은 늘 이 부분을 잘못 처리합니다. 버림 나눗셈 연산자(//)를 추가한 것이 parser 모듈을 망가뜨렸다는 사실을 누군가 알아차리기까지 [2] 1년이 훨씬 넘게 걸렸습니다.

체크리스트

  • Grammar/Grammar: 네, 이것은 아마 이미 알아내셨을 것입니다 :)
  • Grammar에 맞추기 위해 Parser/Python.asdl을 변경해야 할 수 있습니다. make를 실행하여 Include/Python-ast.h와 Python/Python-ast.c를 다시 생성하십시오.
  • Grammar 변경과 관련된 AST 객체를 생성하도록 Python/ast.c를 변경해야 합니다. Lib/compiler/ast.py에서도 순수 Python AST 객체를 그에 맞게 변경해야 합니다.
  • Include/graminit.h와 Python/graminit.c를 다시 생성하려면 Parser/pgen을 다시 실행해야 합니다. (make가 이 작업을 대신 처리해 줄 것입니다.)
  • Python/symbtable.c: 컴파일 단계 직전에 수행되는 심볼 수집 단계를 처리합니다.
  • Python/compile.c: 새로 추가한 생성 규칙에 대한 옵코드를 생성하도록 compiler_* 함수들을 만들거나 수정해야 합니다.
  • Lib/symbol.py, Lib/token.py, Lib/keyword.py 중 일부 또는 전부를 다시 생성해야 할 수 있습니다.
  • parser 모듈. 새 문법의 일부를 test_parser에 추가하고, 테스트가 통과할 때까지 Modules/parsermodule.c를 손보십시오.
  • 새 문법의 사용 예를 test_grammar.py에 추가하십시오.
  • compiler 패키지. 좋은 테스트 방법은 compiler 패키지로 표준 라이브러리와 테스트 스위트를 컴파일한 다음 제대로 실행되는지 확인하는 것입니다. 이 작업은 Python 2.x에서만 필요하다는 점에 유의하십시오.
  • Python의 토큰 구조까지 변경했다면 Lib/tokenizer.py 라이브러리 모듈도 변경해야 합니다.
  • 일부 변경 사항은 라이브러리 모듈 pyclbr을 조금 수정해야 할 수 있습니다.
  • 문서를 반드시 작성해야 합니다!
  • 모든 것을 체크인하고 나면 Python/Python-ast.c에 새로운 변경 사항이 생긴 것을 보게 될 가능성이 높습니다. 이는 이 (생성된) 파일에 이 파일을 생성하는 데 사용된 소스의 SVN 버전이 들어 있기 때문입니다. 이를 피할 방법은 없으며, 이 파일은 따로 제출하기만 하면 됩니다.

참고 문헌