2017-10-30 2 views
-2

스칼라에서 프로그램을 실행하는 데 문제가 있습니다. 나는 언어에 아주 익숙하고 intellij에서 설정할 수 없었기 때문에 지금은 숭고하고 터미널에서 실행하려고합니다. microproject 클래스를 실행하려고하면 arrayindexoutofbounds 오류가 계속 발생합니다.스칼라 프로그램 실행

누군가 내게 큰이 프로그램을 실행하는 방법을 알아내는 데 도움 주시기 바랍니다 수 있습니다.

import scala.util.parsing.combinator._ 

abstract class MatchTree 
case class S(e:MatchTree) extends MatchTree 
case class E(c:MatchTree, e:MatchTree) extends MatchTree 
case class C(s:String) extends MatchTree 
case class NIL() extends MatchTree 

class MPParser extends JavaTokenParsers{ 
def s: Parser[MatchTree] = e ^^ {case se => S(se)} 
def e: Parser[MatchTree] = c ~ e ^^ {case ch ~ ex => E(ch,ex)} | c ^^ {case 
ch => E(ch,NIL())} 
def c[C] = ("a" | "b") ^^ {case ch => C(ch)} 
} 

object Microproject extends MPParser{ 
def main(args: Array[String]) { 
println("input : "+ args(0)) 
println(parseAll(s, args(0))) 
} 
} 
+0

프로그램을 실행하는 데 성공한 것 같습니다. 프로그램 작동 여부는 또 다른 문제입니다. – byxor

+0

내 선생님 코드 – Demuze28

답변

0

프로그램에 인수가 필요합니다. 당신은 (명령 행에서)과 같이이 작업을 수행 할 수 있습니다

scala myFile.scala "Some argument" 

이이 당신을에 흘려 주기도해야 무엇 :

println("input : "+ args(0)) 

당신이 볼 수 있듯이이,이 라인은 첫 번째 인수를 출력 프로그램 (args(0)). 다음 번에 스택 추적을보고 오류가 발생한 줄을 확인하고 그 곳에서 진행중인 작업을 파악할 수 있는지 확인할 수 있습니다. 또한 미래에는 교수가 인터넷에서 가르치는 것보다 교수의 프로그램을 운영하는 데 도움이 될 가능성이 더 큽니다. 당신은 이번에 행운이 있어요 ...

또한, 나는 프로그램이 예상하는 어떤 인수를 모르겠다. 교수님 께 물어봐야 할 것입니다.

+0

덕분에 효과가 있다고 생각합니다. – Demuze28

관련 문제