about summary refs log tree commit diff
path: root/pkg/lang/scanner
diff options
context:
space:
mode:
authorMel <einebeere@gmail.com>2022-07-11 03:00:04 +0200
committerMel <einebeere@gmail.com>2022-07-11 03:00:04 +0200
commit0a6339f5e2008a29df1b03ca012e69bd1dfd46cc (patch)
tree6634f5b9422a9f1f4523df72ff047df42f285558 /pkg/lang/scanner
parent1b6ef1e43e1ec1107ce29a6438b399352d09fbc2 (diff)
downloadjinx-0a6339f5e2008a29df1b03ca012e69bd1dfd46cc.tar.zst
jinx-0a6339f5e2008a29df1b03ca012e69bd1dfd46cc.zip
Allow underscores in identifiers in scanner
Diffstat (limited to 'pkg/lang/scanner')
-rw-r--r--pkg/lang/scanner/scanner.go4
1 files changed, 2 insertions, 2 deletions
diff --git a/pkg/lang/scanner/scanner.go b/pkg/lang/scanner/scanner.go
index 2991083..b01e22f 100644
--- a/pkg/lang/scanner/scanner.go
+++ b/pkg/lang/scanner/scanner.go
@@ -69,7 +69,7 @@ func (s *Scanner) scanToken() (token.Token, error) {
 
 	if c == '"' {
 		return s.scanString()
-	} else if unicode.IsLetter(c) {
+	} else if unicode.IsLetter(c) || c == '_' {
 		return s.scanIdentifierOrKeyword()
 	} else if unicode.IsDigit(c) {
 		return s.scanNumber()
@@ -195,7 +195,7 @@ func (s *Scanner) scanIdentifierOrKeyword() (token.Token, error) {
 			return token.Token{}, err
 		}
 
-		if eof || (!unicode.IsLetter(c) && !unicode.IsDigit(c)) {
+		if eof || !(unicode.IsLetter(c) || unicode.IsDigit(c) || c == '_') {
 			break
 		}