Exemple #1
0
 def test_scan_until_(self):
     lexer = Lexer("foo'bar", "test.fea")
     self.assertEqual(lexer.pos_, 0)
     lexer.scan_until_("'")
     self.assertEqual(lexer.pos_, 3)
     lexer.scan_until_("'")
     self.assertEqual(lexer.pos_, 3)
Exemple #2
0
 def test_scan_over_(self):
     lexer = Lexer("abbacabba12", "test.fea")
     self.assertEqual(lexer.pos_, 0)
     lexer.scan_over_("xyz")
     self.assertEqual(lexer.pos_, 0)
     lexer.scan_over_("abc")
     self.assertEqual(lexer.pos_, 9)
     lexer.scan_over_("abc")
     self.assertEqual(lexer.pos_, 9)
     lexer.scan_over_("0123456789")
     self.assertEqual(lexer.pos_, 11)
Exemple #3
0
 def locs(s):
     return [str(loc) for (_, _, loc) in Lexer(s, "test.fea")]
Exemple #4
0
 def lines(s):
     return [loc.line for (_, _, loc) in Lexer(s, "test.fea")]
Exemple #5
0
def lex(s):
    return [(typ, tok) for (typ, tok, _) in Lexer(s, "test.fea")]
Exemple #6
0
 def locs(s):
     return ["%s:%d:%d" % loc for (_, _, loc) in Lexer(s, "test.fea")]
Exemple #7
0
 def test_newline(self):
     lines = lambda s: [loc[1] for (_, _, loc) in Lexer(s, "test.fea")]
     self.assertEqual(lines("FOO\n\nBAR\nBAZ"), [1, 3, 4])  # Unix
     self.assertEqual(lines("FOO\r\rBAR\rBAZ"), [1, 3, 4])  # Macintosh
     self.assertEqual(lines("FOO\r\n\r\n BAR\r\nBAZ"), [1, 3, 4])  # Windows
     self.assertEqual(lines("FOO\n\rBAR\r\nBAZ"), [1, 3, 4])  # mixed