JavaScript Highlighter: Fix numbers starting with dot

This commit is contained in:
Shadowfacts 2020-04-05 12:12:26 -04:00
rodič 7b54a18bcc
revize 7b090bcb4a
Podepsáno: shadowfacts
ID GPG klíče: 94A5AB95422746E5
2 změnil soubory, kde provedl 14 přidání a 3 odebrání

Zobrazit soubor

@ -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() {

Zobrazit soubor

@ -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()