Add server-side tokenizer #185

Merged
lars.winzer merged 16 commits from feat/tokenizer into main 2026-03-15 13:52:51 +01:00
Showing only changes of commit 208a284204 - Show all commits
@@ -0,0 +1,60 @@
package ch.unibas.dmi.dbis.cs108.casono.common.tokenizer;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
import org.junit.jupiter.api.Test;
class StateTest {
@Test
void testConstructor() {
String input = "hello";
State state = new State(input);
assertEquals(input, state.input);
assertEquals(0, state.pos);
assertEquals(1, state.line);
assertEquals(1, state.column);
assertTrue(state.tokens.isEmpty());
}
@Test
void testCurrent() {
String input = "abc";
State state = new State(input);
assertEquals('a', state.current());
state.advance();
assertEquals('b', state.current());
}
@Test
void testPeek() {
String input = "abc";
State state = new State(input);
assertEquals('b', state.peek());
state.advance();
assertEquals('c', state.peek());
state.advance();
assertEquals('\0', state.peek()); // End of input
}
@Test
void testAdvance() {
String input = "abc";
State state = new State(input);
assertEquals(0, state.pos);
assertEquals(1, state.column);
state.advance();
assertEquals(1, state.pos);
assertEquals(2, state.column);
}
@Test
void testIsEof() {
String input = "a";
State state = new State(input);
assertFalse(state.isEof());
state.advance();
assertTrue(state.isEof());
}
}