diff options
author | Andreas Rumpf <rumpf_a@web.de> | 2017-11-28 20:00:20 +0100 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2017-11-29 11:00:25 +0100 |
commit | 416a322efb3ce8a90c88f596863cbba89d28bccb (patch) | |
tree | 4be551963f1b0dbcab14e771902847143e0e64b3 | |
parent | 5fdc69dfbdcf0134d3f6a97cde1d802ebdeb0a13 (diff) | |
download | Nim-416a322efb3ce8a90c88f596863cbba89d28bccb.tar.gz |
added lexer.newlineFollows for parser experiments
-rw-r--r-- | compiler/lexer.nim | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/compiler/lexer.nim b/compiler/lexer.nim index 4106494c4..bca07e500 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 |