Fix bug in ParserRuleContext.verbatimText

This commit is contained in:
Edwin Jakobs
2020-05-03 14:25:14 +02:00
parent f5aba87f50
commit bade284622

View File

@@ -9,9 +9,12 @@ import org.antlr.v4.runtime.tree.ParseTreeWalker
import org.openrndr.extra.kotlin.antlr.KotlinLexer import org.openrndr.extra.kotlin.antlr.KotlinLexer
import org.openrndr.extra.kotlin.antlr.KotlinParser import org.openrndr.extra.kotlin.antlr.KotlinParser
import org.openrndr.extra.kotlin.antlr.KotlinParserBaseListener import org.openrndr.extra.kotlin.antlr.KotlinParserBaseListener
import java.io.File
fun ParserRuleContext.verbatimText(marginLeft: Int = 0, marginRight: Int = 0): String { fun ParserRuleContext.verbatimText(marginLeft: Int = 0, marginRight: Int = 0): String {
if (start == null || stop == null) {
return ""
}
val startIndex = start.startIndex + marginLeft val startIndex = start.startIndex + marginLeft
val stopIndex = stop.stopIndex - marginRight val stopIndex = stop.stopIndex - marginRight
val interval = Interval(startIndex, stopIndex) val interval = Interval(startIndex, stopIndex)
@@ -67,5 +70,5 @@ fun extractProgram(source: String, programIdentifier: String = "program"): Progr
val lambdaExtractor = LambdaExtractor(ruleNames, programIdentifier) val lambdaExtractor = LambdaExtractor(ruleNames, programIdentifier)
ParseTreeWalker.DEFAULT.walk(lambdaExtractor, root) ParseTreeWalker.DEFAULT.walk(lambdaExtractor, root)
return ProgramSource(packageExtractor.result, importsExtractor.result?:"", lambdaExtractor.result?:"") return ProgramSource(packageExtractor.result, importsExtractor.result ?: "", lambdaExtractor.result ?: "")
} }