JavaScript Highlighter: Fix numbers starting with dot

This commit is contained in:
Shadowfacts 2020-04-05 12:12:26 -04:00
부모 7b54a18bcc
커밋 7b090bcb4a
로그인 계정: shadowfacts
GPG 키 ID: 94A5AB95422746E5
2개의 변경된 파일14개의 추가작업 그리고 3개의 파일을 삭제

파일 보기

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

파일 보기

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