명령 행에서 파일을 구문 분석 :유닉스 도구는 내가 변환 할 다음과 같은 파이썬 스크립트가
import sys
# more imports
''' some comments '''
class Foo:
def _helper1():
etc.
def _helper2():
etc.
def foo1():
d = { a:3, b:2, c:4 }
etc.
def foo2():
d = { a:2, b:2, c:7 }
etc.
def foo3():
d = { a:3, b:2, c:7 }
etc.
etc.
if __name__ == "__main__":
etc.
난 그냥 foo*()
기능을 분석하고 유지할 수 있도록하고 싶습니다 d={a:3, b:2}
과 같은 특정 속성이있는 것만 분명히 그 외의 것들은 모두 foo*()
이 아니므로 변환이 계속 실행됩니다. d
은 다른 키, 값을 가질 수 있지만 foo*()
은 잘 정의됩니다.
체인을 통해이 작업을 수행 할 수있는 유닉스 도구가 있습니까? grep
을 사용하여 foo
을 식별 할 수는 있지만 논리의 유지 또는 거부 부분을 적용하려면 다음 몇 줄을 어떻게 스캔합니까?
편집 : 메모, 맞춤 구문 분석기를 작성하기 전에 명령 줄 도구로이 작업을 수행하는 것이 합리적인지 확인하려고합니다. 나는 파서를 쓰는 방법을 안다.
파이썬을 조작하기 위해 파이썬에 내장 된 도구가 있습니다. 즉, 애드혹 파이썬 파서로 정규식을 적용하는 것보다 훨씬 안정적으로 작동합니다. – pvg
안녕하세요. 귀하의 질문은 주제와 관련이 없으며 곧 닫힙니다. [둘러보기] (https://stackoverflow.com/tour)를 작성하고 [도움말 센터] (https://stackoverflow.com/help)를 읽고이 사이트의 주제가 무엇인지 이해하는 것이 좋습니다. –
Hackernews에 대해 호전적인 SO가 어떻게되어 왔으며 위의 의견에이 점에 대해 많은 논평이있었습니다. 필자가 맞춤 구문 분석기를 작성하기 전에 기존 도구를 다시 사용하려고 할 때 이것이 왜 주제와 관련이 없는지 확실하지 않습니다.유닉스에는 수십개의 명령 행 도구가 있기 때문에 사람들이 모든 것을 알기를 기대하지 않는 것이 타당하다. – rottyguy