Пример #1
0
    def testConsumingReachesEof(self):
        state = ScannerState("f")
        state.consume()
        eof = state.consume()

        self.assertEqual(EOF, eof)
        self.assertEqual(1, state.position)
Пример #2
0
    def testCanConsume(self):
        state = ScannerState("foo")
        c = state.consume()

        self.assertEqual('f', c)
        self.assertEqual(1, state.position)
        self.assertEqual(0, state.start)
Пример #3
0
 def test_match_CanSucceed(self):
     state = ScannerState('foo123')
     state.consume()
     state.consume()
     state.consume()
     self.assertTrue(state.match(r'\d{3}'))
     self.assertEqual(6, state.position)
     self.assertEqual(EOF, state.consume())
Пример #4
0
    def testConsumingStopsAtEof(self):
        state = ScannerState("f")
        state.consume()
        a = state.consume()
        b = state.consume()
        c = state.consume()

        self.assertEqual([EOF, EOF, EOF], [a, b, c])
        self.assertEqual(1, state.position)
        self.assertEqual(0, state.start)
Пример #5
0
 def test_expect_match_CanSucceed(self):
     state = ScannerState('foo')
     c = state.expect_match('fo{2}')
     self.assertEqual('foo', c.group(0))
Пример #6
0
 def test_expect_CanFail(self):
     state = ScannerState('foo')
     self.assertRaises(ValueError, state.expect, 'x')
Пример #7
0
 def test_expect_CanSucceed(self):
     state = ScannerState('foo')
     c = state.expect('f')
     self.assertEqual('f', c)
Пример #8
0
    def test_ignore_Works(self):
        state = ScannerState("aabb")
        state.skip("a")
        state.ignore()

        self.assertEqual(2, state.position)
Пример #9
0
    def testInstantiate(self):
        state = ScannerState("foo")

        self.assertEqual("foo", state.source)
        self.assertEqual(0, state.position)
        self.assertEqual(0, state.start)
Пример #10
0
    def test_emit_Works(self):
        state = ScannerState("aabb")
        state.skip("a")

        self.assertEqual('aa', state.emit())
        self.assertEqual(2, state.position)
Пример #11
0
    def test_skip_run_StopsAtEof(self):
        state = ScannerState("aaf")
        state.skip_run("af")

        self.assertEqual(3, state.position)
        self.assertEqual(EOF, state.consume())
Пример #12
0
    def test_skip_run_Works(self):
        state = ScannerState("aafoo")
        state.skip_run("af")

        self.assertEqual(3, state.position)
        self.assertEqual('o', state.consume())
Пример #13
0
    def test_skip_Works(self):
        state = ScannerState("aafoo")
        state.skip("a")

        self.assertEqual(2, state.position)
        self.assertEqual('f', state.consume())
Пример #14
0
 def test_backup_Works(self):
     state = ScannerState("foo")
     state.consume()
     state.consume()
     state.backup()
Пример #15
0
 def test_peek_CanFail(self):
     state = ScannerState('foo')
     self.assertFalse(state.peek('fxo'))
Пример #16
0
 def test_peek_CanSucceed(self):
     state = ScannerState('foo')
     self.assertTrue(state.peek('foo'))