어휘 분석의 세계로 들어가는 첫 번째 벤처이기 때문에 여기에서 발견 과정을 상당히 빠르게 진행할 수 있습니다. 어쩌면 이것은 잘못된 경로 일 수도 있습니다. 먼저, 내 문제를 설명해 드리겠습니다 :파이썬 - 어휘 분석 및 토큰 화
증류기가 약 15 개의 중요한 속성이고 나머지는 거의 생성 할 수없는 매우 큰 특성 파일 (1,000 개의 속성 순)이 있습니다. 변화.
따라서, 예를 들어 :
property.${general.name}blah.home.directory = /blah
property.${general.name}.ip = ${general.ip}
property.${component1}.ip = ${general.ip}
property.${component1}.foo = ${component1.foo}
property.mynameblah.home.directory = /blah
property.myname.ip = 127.0.0.1
property.component1.ip = 127.0.0.1
property.component1.foo = bar
로 어휘 분석과 토큰 화 :
general {
name = myname
ip = 127.0.0.1
}
component1 {
key = value
foo = bar
}
이 내가 뭔가를 토큰 화하는 만들려는 형식의 유형입니다 내 최고의 경로처럼 들리지만, 이것은 매우 간단한 형태입니다. 그것은 간단한 문법이고, 간단한 대치입니다. 저는 망치를 두드리는 데 쓰레기를 가져 가지 않을 것이라고 확신하고 싶습니다.
내 자신의 렉서와 토크 나이저를 만들 수 있습니다. 또는 ANTlr이 가능하지만 휠을 다시 발명하고 ANTlr이 잔인한 소리를내는 것을 좋아하지 않습니다.
컴파일러 기술에 익숙하지 않아 올바른 방향의 포인터 & 코드가 가장 만족 스러울 것입니다.
참고 : 입력 형식을 변경할 수 있습니다.
왜 대신 자신의 파서를 생성하는 JSON을 사용하지 ?? – AndiDog
예제 번역에는 약간의 오류가있는 것 같습니다. 그렇지 않다면 "$ {component1} .ip"이 예제 3 행의 "component1"으로 변환 된 이유를 알 수 없습니다. 구문이 규칙적인 경우 $ {identifiers}를 정규 표현식으로 추출한 다음 사전 검색이없는 사전 검색으로 바꿀 수 있습니다. – msw
거기에 몇 가지 실수가 있었는데, 나는 그것들을 바로 잡았다 고 생각합니다. –