JavaScript Highlighter: Fix numbers starting with dot

This commit is contained in:
Shadowfacts 2020-04-05 12:12:26 -04:00
bovenliggende 7b54a18bcc
commit 7b090bcb4a
Getekend door: shadowfacts
GPG sleutel-ID: 94A5AB95422746E5
2 gewijzigde bestanden met toevoegingen van 14 en 3 verwijderingen

Bestand weergeven

@ -295,8 +295,19 @@ class JavaScriptHighlighter {
private func consumeDotLookup() {
consume() // .
print("Dot lookup")
emit(token: .punctuation, range: prevCharRange())
guard let char = peek() else { return }
if identifierStarts.contains(char) {
print("Dot lookup")
emit(token: .punctuation, range: prevCharRange())
consumeIdentifier()
} else if CharacterSet.decimalDigits.contains(char) {
let numberStart = text.index(before: currentIndex)
while let char = peek(), CharacterSet.decimalDigits.contains(char) {
consume()
}
print("Number: \(text[numberStart..<currentIndex])")
emit(token: .number, range: range(from: numberStart, to: currentIndex))
}
}
private func consumeArray() {

Bestand weergeven

@ -8,7 +8,7 @@
import Foundation
let source = "`$foo ${blah} bar`"
let source = ".1 + .2"
let highlighter = JavaScriptHighlighter(text: source)
highlighter.debug = true
highlighter.highlight()