From a321bfe7b2f6db5078de7b2e5ed5ddcccd65f319 Mon Sep 17 00:00:00 2001 From: NeonXP Date: Wed, 16 Nov 2022 05:11:19 +0300 Subject: initial commit --- parser/scanners.go | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 parser/scanners.go (limited to 'parser/scanners.go') diff --git a/parser/scanners.go b/parser/scanners.go new file mode 100644 index 0000000..078f9d3 --- /dev/null +++ b/parser/scanners.go @@ -0,0 +1,32 @@ +package parser + +func scanNumber(l *lexer) bool { + l.AcceptWhile("0123456789") + if l.AtStart() { + // not found any digit + return false + } + l.Accept(".") + l.AcceptWhile("0123456789") + return !l.AtStart() +} + +func scanQuotedString(l *lexer, quote rune) bool { + start := l.Pos + if l.Next() != quote { + l.Back() + return false + } + for { + ch := l.Next() + switch ch { + case eof: + l.Pos = start // Return position to start + return false // Unclosed quote string? + case '\\': + l.Next() // Skip next char + case quote: + return true // Closing quote + } + } +} -- cgit v1.2.3