本文整理汇总了Scala中org.antlr.v4.runtime.misc.ParseCancellationException类的典型用法代码示例。如果您正苦于以下问题:Scala ParseCancellationException类的具体用法?Scala ParseCancellationException怎么用?Scala ParseCancellationException使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ParseCancellationException类的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Scala代码示例。
示例1: SummaryParser
//设置package包名称以及导入依赖的类
package org.argus.jawa.summary.parser
import java.io.StringReader
import org.antlr.v4.runtime.misc.ParseCancellationException
import org.antlr.v4.runtime.{BailErrorStrategy, CharStreams, CommonTokenStream, NoViableAltException}
import org.argus.jawa.summary.rule.SummaryFile
import org.argus.jawa.summary.grammar.{SafsuLexer, SafsuParser}
object SummaryParser {
def apply(source: String): SummaryFile =
parse(source)
@throws[SummaryParserException]
def parse(source: String): SummaryFile = {
val reader = new StringReader(source)
val input = CharStreams.fromReader(reader)
val lexer = new SafsuLexer(input)
val cts = new CommonTokenStream(lexer)
val parser = new SafsuParser(cts)
parser.setErrorHandler(new BailErrorStrategy)
try {
SummaryParserVisitor(parser.summaryFile())
} catch {
case oie: IndexOutOfBoundsException =>
throw SummaryParserException(oie)
case nvae: NoViableAltException =>
throw SummaryParserException(nvae)
case pce: ParseCancellationException =>
throw SummaryParserException(pce.getCause)
}
}
}
case class SummaryParserException(cause: Throwable) extends Exception(cause.getMessage)