Remove old lexer+parser implementation
This commit is contained in:
parent
d5632e9217
commit
a4ec29f084
15 changed files with 0 additions and 706 deletions
|
@ -1,4 +0,0 @@
|
|||
package parser
|
||||
|
||||
class ParseFromTextTests {
|
||||
}
|
|
@ -1,91 +0,0 @@
|
|||
package parser
|
||||
|
||||
import lexer.Token
|
||||
import lexer.state.TokenPosition
|
||||
import lexer.TokenType
|
||||
import org.junit.jupiter.api.Assertions.assertEquals
|
||||
import org.junit.jupiter.api.Assertions.assertTrue
|
||||
import org.junit.jupiter.api.Test
|
||||
import prolog.ast.terms.Atom
|
||||
import prolog.ast.terms.CompoundTerm
|
||||
|
||||
class ParseTests {
|
||||
@Test
|
||||
fun `parse atom a`() {
|
||||
val input = Token(TokenType.ALPHANUMERIC, "a", TokenPosition(0, 0, 1))
|
||||
|
||||
val result = Parser(listOf(input)).parse()
|
||||
|
||||
assertEquals(1, result.size, "Expected 1 term")
|
||||
assertEquals(Atom("a"), result[0], "Expected atom 'a'")
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `parse atom foo`() {
|
||||
val input = Token(TokenType.ALPHANUMERIC, "foo", TokenPosition(0, 0, 3))
|
||||
|
||||
val result = Parser(listOf(input)).parse()
|
||||
|
||||
assertEquals(1, result.size, "Expected 1 term")
|
||||
assertEquals(Atom("foo"), result[0], "Expected atom 'foo'")
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `parse atom foo1`() {
|
||||
val input = Token(TokenType.ALPHANUMERIC, "foo1", TokenPosition(0, 0, 4))
|
||||
|
||||
val result = Parser(listOf(input)).parse()
|
||||
|
||||
assertEquals(1, result.size, "Expected 1 term")
|
||||
assertEquals(Atom("foo1"), result[0], "Expected atom 'foo1'")
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `parse atom fooBar`() {
|
||||
val name = "fooBar"
|
||||
val input = Token(TokenType.ALPHANUMERIC, name, TokenPosition(0, 0, 6))
|
||||
|
||||
val result = Parser(listOf(input)).parse()
|
||||
|
||||
assertEquals(1, result.size, "Expected 1 term")
|
||||
assertEquals(Atom(name), result[0], "Expected atom 'fooBar'")
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `parse atom foo_bar`() {
|
||||
val name = "foo_bar"
|
||||
val input = Token(TokenType.ALPHANUMERIC, name, TokenPosition(0, 0, 7))
|
||||
|
||||
val result = Parser(listOf(input)).parse()
|
||||
|
||||
assertEquals(1, result.size, "Expected 1 term")
|
||||
assertEquals(Atom(name), result[0], "Expected atom 'foo_bar'")
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `parse atom my_FooBar1`() {
|
||||
val name = "my_FooBar1"
|
||||
val input = Token(TokenType.ALPHANUMERIC, name, TokenPosition(0, 0, 11))
|
||||
|
||||
val result = Parser(listOf(input)).parse()
|
||||
|
||||
assertEquals(1, result.size, "Expected 1 term")
|
||||
assertEquals(Atom(name), result[0], "Expected atom 'my_FooBar1'")
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `parse compound term f()`() {
|
||||
val input = listOf(
|
||||
Token(TokenType.ALPHANUMERIC, "f", TokenPosition(0, 0, 1)),
|
||||
Token(TokenType.PARENTHESIS_LEFT, "(", TokenPosition(0, 1, 2)),
|
||||
Token(TokenType.PARENTHESIS_RIGHT, ")", TokenPosition(0, 3, 4))
|
||||
)
|
||||
|
||||
val result = Parser(input).parse()
|
||||
|
||||
assertEquals(1, result.size, "Expected 1 term")
|
||||
assertTrue(result[0] is CompoundTerm)
|
||||
assertEquals("f", (result[0] as CompoundTerm).name)
|
||||
assertEquals(0, (result[0] as CompoundTerm).arguments.size)
|
||||
}
|
||||
}
|
Reference in a new issue