mirror of https://github.com/lark-parser/lark.git
Columns now start at 1
This commit is contained in:
parent
ad72810baf
commit
2b4ef11ebf
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue