2

저는 다른 것들 중에서도 파서 - 연결자 (parser-combinator)가있는 스칼라 프로그램을 가지고 있습니다. 이것은 scala.util.parsing.combinator.RegexParsers을 확장하여 수행됩니다. 나는 Scala 2.10을 사용하여 그것을 개발했으며 모두 잘 동작했다.스칼라ック은 RegexParser의 페이즈 타이 퍼에 매달려 있습니다.

어제 필자는 내 시스템을 IntelliJ 14.02와 함께 Scala 2.11.4로 업그레이드했습니다 (중요하지는 않음). 그러나

, 나는이 단계에서, 지금 scalac 컴퓨터가이 프로그램을 컴파일하려고 할 때마다 :

scalac: phase typer on MyParser.scala

가이 코드에 절대적으로 아무것도 변경되지 않습니다, 나는 그것이 곳에서 매달려 또는 이유를 이해할 수 없다 나는 시작해야한다. 인 IntelliJ는 ?* 토큰에 따라 constants_def? 또는 structure_def* 같은 파서 표현에 대한 접미사 연산자에 대한 경고를했고, 나는 때문에 SIP: Language Modularization Features의이 라인을 추가 :

import scala.language.postfixOps

정말하지 않았다 어떤 효과와 문제는 여전히 동일합니다.

무슨 일이 일어나고 있는지 어떻게 해결할 수 있습니까? 나는 위상 테일러 (phase typer)가 무한정 매달려있는 이유를 어디서부터 이해해야 하는지를 알 수 없다.

def da_gd : Parser[Expression with TimedCondition] = 
    pref_timed_gd | da_gd_conjunction | 
    (empty_temporal: Parser[Expression with TimedCondition]) 

스택 덤프는 EXPR의 유형을 파악 있다는 표시하고 -Ytyper-debug이 근처를 보여줍니다 : 그것은 해결 방법처럼 보인다

+0

IDE의 작업 영역에서 오래된 빌드 제품을 먼저 의심 할 것입니다. 그런 다음 IDE를 제거하기 위해 명령 줄 scalac을 사용하여 복제하려고 시도합니다. 그럼 내가 궁금하다면,'-Ytyper-debug -verbose -Ydebug'를 사용합니다. –

답변

1

는 명시 적 유형을 추가하는 것입니다.

자정 이후에는 아무 일도 일어나지 않으므로 그 곳에서 멈출 것입니다.

+0

감사합니다. 그래서 실제로 2.11 컴파일러에서 깨진 것이 있습니까? – jbx

+0

음, 모르겠다. 나는 Martin O.가 버그 보고서에서 언급 한 논문을 읽지 않았다. 음, 분명히 부러졌지만, 결정할 만하니? –

관련 문제