Columns now start at 1

This commit is contained in:
Erez Shinan 2018-05-10 12:34:19 +03:00
parent ad72810baf
commit 2b4ef11ebf
3 changed files with 10 additions and 10 deletions

View File

@ -63,7 +63,7 @@ class LineCounter:
self.newline_char = '\n'
self.char_pos = 0
self.line = 1
self.column = 0
self.column = 1
self.line_start_pos = 0
def feed(self, token, test_newline=True):
@ -78,7 +78,7 @@ class LineCounter:
self.line_start_pos = self.char_pos + token.rindex(self.newline_char) + 1
self.char_pos += len(token)
self.column = self.char_pos - self.line_start_pos
self.column = self.char_pos - self.line_start_pos + 1
class _Lex:
"Built to serve both Lexer and ContextualLexer"

View File

@ -53,7 +53,7 @@ class Parser:
match = self.term_matcher
text_line = 1
text_column = 0
text_column = 1
def predict(nonterm, column):
assert not nonterm.is_term, nonterm
@ -128,7 +128,7 @@ class Parser:
if token == '\n':
text_line += 1
text_column = 0
text_column = 1
else:
text_column += 1

View File

@ -854,22 +854,22 @@ def _make_parser_test(LEXER, PARSER):
l = _Lark(g)
a, bc, d = l.parse("AB\nCD").children
self.assertEqual(a.line, 1)
self.assertEqual(a.column, 0)
self.assertEqual(a.column, 1)
bc ,= bc.children
self.assertEqual(bc.line, 1)
self.assertEqual(bc.column, 1)
self.assertEqual(bc.column, 2)
self.assertEqual(d.line, 2)
self.assertEqual(d.column, 1)
self.assertEqual(d.column, 2)
if LEXER != 'dynamic':
self.assertEqual(a.end_line, 1)
self.assertEqual(a.end_column, 1)
self.assertEqual(a.end_column, 2)
self.assertEqual(bc.end_line, 2)
self.assertEqual(bc.end_column, 1)
self.assertEqual(bc.end_column, 2)
self.assertEqual(d.end_line, 2)
self.assertEqual(d.end_column, 2)
self.assertEqual(d.end_column, 3)