From 416a322efb3ce8a90c88f596863cbba89d28bccb Mon Sep 17 00:00:00 2001 From: Andreas Rumpf Date: Tue, 28 Nov 2017 20:00:20 +0100 Subject: [PATCH] added lexer.newlineFollows for parser experiments --- compiler/lexer.nim | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/compiler/lexer.nim b/compiler/lexer.nim index 4106494c4a..bca07e5000 100644 --- a/compiler/lexer.nim +++ b/compiler/lexer.nim @@ -860,6 +860,23 @@ proc getOperator(L: var TLexer, tok: var TToken) = if buf[pos] in {CR, LF, nimlexbase.EndOfFile}: tok.strongSpaceB = -1 +proc newlineFollows*(L: var TLexer): bool = + var pos = L.bufpos + var buf = L.buf + while true: + case buf[pos] + of ' ', '\t': + inc(pos) + of CR, LF: + result = true + break + of '#': + inc(pos) + if buf[pos] == '#': inc(pos) + if buf[pos] != '[': return true + else: + break + proc skipMultiLineComment(L: var TLexer; tok: var TToken; start: int; isDoc: bool) = var pos = start