8000 Fix bug in tokenizing empty lines · jrdek/python@5b3b5d2 · GitHub
[go: up one dir, main page]

Skip to content

Commit 5b3b5d2

Browse files
committed
Fix bug in tokenizing empty lines
1 parent 877eaf4 commit 5b3b5d2

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

src/tokens.js

Original file line numberDiff line numberDiff line change
@@ -24,10 +24,10 @@ export const newlines = new ExternalTokenizer((input, stack) => {
2424
input.acceptToken(newlineBracketed, 1)
2525
} else {
2626
input.advance()
27-
let space = 0
28-
while (input.next == space || input.next == tab) { input.advance(); space++ }
27+
let spaces = 0
28+
while (input.next == space || input.next == tab) { input.advance(); spaces++ }
2929
let empty = input.next == newline || input.next == carriageReturn || input.next == hash
30-
input.acceptToken(empty ? newlineEmpty : newlineToken, -space)
30+
input.acceptToken(empty ? newlineEmpty : newlineToken, -spaces)
3131
}
3232
}, {contextual: true, fallback: true})
3333

Original file line numberDiff line numberDiff line change
@@ -318,3 +318,14 @@ self = True
318318
==>
319319

320320
Script(AssignStatement(VariableName,AssignOp,Boolean))
321+
322+
# Trailing whitespace in block
323+
324+
def x():
325+
one
326+
327+
two
328+
329+
==>
330+
331+
Script(FunctionDefinition(def,VariableName,ParamList,Body(ExpressionStatement(VariableName),ExpressionStatement(VariableName))))