저는 전문가는 아니지만 두 도구 모두를 사용하여 이미 다른 프로젝트에서 작동하는 것을 얻었습니다. 실제로 자바에서 jflex/byaccJ를 사용하여 ftp://ftp.funet.fi/pub/mirrors/ftp.imdb.com/pub/movies.list.gz을 다운로드했습니다.lex/yacc를 사용하여 IMDB darta를 구문 분석하거나 데이터 구조로 인해 둘 다 실행 가능하지 않습니다
movie.list 파일을 보면 처음에는 구조가 잘 보입니다. "몇 개의 탭 다음에 1 년 후에 (년) 다음에 오는 제목. 항목이 제목보다 에피소드 시리즈의 제목 싶게
"Breaking Bad" (2008) {Cornered (#4.6)} 2011
년 currly 괄호 안에 더 많은 데이터를 거기되는 경우
“What It Is” (2004) 2004
(둘 다 년의 의미에 대해 아직 확실하지 않다) -2014, ????, 2012-2014, 2014 - ????, 2014/II ... 처리 할 수 있습니다.
(V), (TV), (VG) , {{SUSPENDED}} -이 태그라고 부릅니다.
나쁜 것들 : 나중에 그들은 제목을 ""로 묶지 않습니다. 브래킷은 다른 곳에서도 사용되므로 구조를 파악하기 위해 볼 수는 없습니다.
A través de A(lan) Glass (2006) 2006
Michi o tsugu mono (zempen) (1994) (V) 1994
"The Gayle King Show" (1997) {(1997-11-07)} 1997
내 주요 질문은 jflex/byaccJ는 주어진 데이터에 사용할 수 있는지 또는 데이터가 너무 구조화하고 실현 가능한 문법을하지 않은 경우.
jflex : 첫 번째 방법은 WORD와 1 년 동안 규칙/토큰을 만드는 것이 었습니다. 그러나 "() 1-9"는 WORD에도 유효하기 때문에 둘을 구별 할 수는 없습니다.
는두번째 방법 :가, 태그 (예를 들어, (V), (VG)) 또는 WORD 년을 맞는 경우 괄호 안의 문자열을하고있는 경우 규칙을 발견 검사가 명시 적으로
는 3 내가 사용을 만들 수 의 상태? 나는 다른 프로젝트를 사용하여 ""로 묶인 문자열을 잡았습니다. 이것이 여기에 도움이되는지 확실하지 않습니다.
이 글을 쓰면서 나는 두 번째 접근법을 시도 할 것이라고 생각한다. 나는 렉서에 너무 많은 로직을 넣을 것을 염려하지만 이것이 어쨌든 시도해야하는 것보다 이것이 가능한 유일한 방법이라면.
Thx 4 reading 및 rubberducking 그리고 내가 lex/yacc로 할 수 없다고 생각하면 여전히 interessted입니다. ftp://ftp.funet.fi/pub/mirrors/ftp.imdb.com/pub/tools/unix/moviedb-3.24.tar.gz
봐 파일 docs/ADDS-GUIDE
에서 :
IMDB 형식. –