Select Git revision
LeftRecursionTest.kt
Tim Kluge authored
LeftRecursionTest.kt 827 B
package jackrat
import de.timklge.jackrat.*
import jackrat.de.timklge.jackrat.Scanner
import kotlin.test.Test
import kotlin.test.assertEquals
class LeftRecursionTest {
@Test
fun TestLeftRecursion(){
val input = "5-1-4-3"
val scanner = Scanner(input)
val emptyParser = EmptyParser()
val emptyParser1 = AndParser(listOf(emptyParser))
val numParser = RegexParser("""\d+""")
val numCombo1 = AndParser(listOf(emptyParser1, emptyParser1, numParser))
val minusParser = AtomParser("-")
val termParser = AndParser(listOf())
val exprParser = OrParser(listOf(termParser, numCombo1))
termParser.children = listOf(exprParser, minusParser, numCombo1)
val node = exprParser.parse(scanner)
assertEquals(node.parser, exprParser)
}
}