def test_tokenstream_look_push(): # look, push s = TokenStream(iter((Token('a', 1), Token('b', 2), Token('c', 3)))) assert s.current == Token('a', 1) assert s.look() == Token('b', 2) s.next() assert s.look() == Token('c', 3) s.push(Token('b', 2)) assert s.look() == Token('b', 2) s.push(Token('e', 4), current=True) assert s.current == Token('e', 4) assert s.look() == Token('b', 2)
def test_tokenstream_test_shift(): # test s = TokenStream(iter((Token('a', 1), Token('b', 2), Token('c', 3)))) assert s.test('a') s.next() assert s.test('b', 2) # shift assert s.current == Token('b', 2) s.shift(Token('f', 5)) assert s.current == Token('f', 5) s.next() assert s.current == Token('b', 2)
def test_tokenstream_skip_next(): # skip, next s = TokenStream(iter((Token('a', 1), Token('b', 2), Token('c', 3)))) s.skip(1) assert s.current == Token('b', 2) s.next() assert s.current == Token('c', 3) s.push(Token('e', 4)) assert s.current == Token('c', 3) s.next() assert s.current == Token('e', 4) s.next() assert s.current == Token('eof', None)