Exemplo n.º 1
0
 def test_with_buffered_tokens(self):
     parser = make_parser('4d8+10')
     parser.ensure(3)
     token = parser.chomp()
     self.assertEqual(len(parser.tokens), 2)
     self.assertEqual(parser.tokens[0], roller.Token('STR', 'd'))
     self.assertEqual(token, roller.Token('NUM', '4'))
Exemplo n.º 2
0
 def test_str(self):
     lexer = roller.Lexer('asdf')
     self.assertEqual(lexer.advance(), roller.Token('STR', 'asdf'))
Exemplo n.º 3
0
 def test_equal(self):
     me = roller.Token('one', 'two')
     you = roller.Token('one', 'two')
     self.assertEqual(me, you)
Exemplo n.º 4
0
 def test_different_value(self):
     me = roller.Token('one', 'two')
     you = roller.Token('one', 'three')
     self.assertNotEqual(me, you)
Exemplo n.º 5
0
 def test_different_type(self):
     me = roller.Token('one', 'two')
     you = roller.Token('yo', 'two')
     self.assertNotEqual(me, you)
Exemplo n.º 6
0
 def test_different_class(self):
     token = roller.Token('foo', 'bar')
     self.assertNotEqual(token, 'doot')
Exemplo n.º 7
0
 def test_token_end_of_input(self):
     lexer = roller.Lexer('a1')
     self.assertEqual(lexer.advance(), roller.Token('STR', 'a'))
     self.assertEqual(lexer.advance(), roller.Token('NUM', '1'))
     self.assertEqual(lexer.advance(), roller.Token('EOI', None))
     self.assertEqual(lexer.token(), roller.Token('EOI', None))
Exemplo n.º 8
0
 def test_num(self):
     lexer = roller.Lexer('123')
     self.assertEqual(lexer.advance(), roller.Token('NUM', '123'))
Exemplo n.º 9
0
 def test_initialized(self):
     lexer = roller.Lexer('a+b')
     self.assertEqual(lexer.advance(), roller.Token('STR', 'a'))
     self.assertEqual(lexer.token(), roller.Token('STR', 'a'))
     self.assertEqual(lexer.advance(), roller.Token('OP', '+'))
     self.assertEqual(lexer.token(), roller.Token('OP', '+'))
Exemplo n.º 10
0
 def test_illegal_syntax(self):
     lexer = roller.Lexer('foo(123)')
     self.assertEqual(lexer.advance(), roller.Token('STR', 'foo'))
     with self.assertRaises(Exception):
         lexer.advance()
Exemplo n.º 11
0
 def test_end_of_input(self):
     lexer = roller.Lexer('5+6')
     self.assertEqual(lexer.advance(), roller.Token('NUM', '5'))
     self.assertEqual(lexer.advance(), roller.Token('OP', '+'))
     self.assertEqual(lexer.advance(), roller.Token('NUM', '6'))
     self.assertEqual(lexer.advance(), roller.Token('EOI', None))
Exemplo n.º 12
0
 def test_multiple_tokens(self):
     lexer = roller.Lexer('123abc')
     self.assertEqual(lexer.advance(), roller.Token('NUM', '123'))
     self.assertEqual(lexer.advance(), roller.Token('STR', 'abc'))
Exemplo n.º 13
0
 def test_read_start(self):
     lexer = roller.Lexer('-123')
     self.assertEqual(lexer.advance(), roller.Token('OP', '-'))
Exemplo n.º 14
0
 def test_minus(self):
     lexer = roller.Lexer('-')
     self.assertEqual(lexer.advance(), roller.Token('OP', '-'))
Exemplo n.º 15
0
 def test_ensure_two(self):
     parser = make_parser('5d6+3')
     parser.ensure(2)
     self.assertEqual(len(parser.tokens), 2)
     self.assertEqual(parser.tokens[0], roller.Token('NUM', '5'))
     self.assertEqual(parser.tokens[1], roller.Token('STR', 'd'))
Exemplo n.º 16
0
 def test_ensure_one(self):
     parser = make_parser('5d6+3')
     parser.ensure(1)
     self.assertEqual(len(parser.tokens), 1)
     self.assertEqual(parser.tokens[0], roller.Token('NUM', '5'))