1
0
mirror of https://github.com/alecthomas/chroma.git synced 2025-03-17 20:58:08 +02:00

Deduplicate a bunch of text in Scala lexer.

This is part of an effort to speed up compilation of the lexers package.
This commit is contained in:
Alec Thomas 2018-01-03 11:04:11 +11:00
parent 71ddf5511a
commit 4afa8aa3ed
4 changed files with 222 additions and 30 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

16
lexers/testdata/scala.actual vendored Normal file
View File

@ -0,0 +1,16 @@
object abstractTypes extends Application {
abstract class Buffer {
type T; val element: T
}
abstract class SeqBuffer {
type T; val element: Seq[T]; def length = element.length
}
def newIntBuffer(el: Int) = new Buffer {
type T = Int; val element = el
}
def newIntBuffer(el: Int*) = new SeqBuffer {
type T = Int; val element = el
}
println(newIntBuffer(1).element)
println(newIntBuffer(1, 2, 3).length)
}

170
lexers/testdata/scala.expected vendored Normal file
View File

@ -0,0 +1,170 @@
[
{"type":"Keyword","value":"object"},
{"type":"Text","value":" "},
{"type":"NameClass","value":"abstractTypes"},
{"type":"Text","value":" "},
{"type":"Keyword","value":"extends"},
{"type":"Text","value":" "},
{"type":"NameClass","value":"Application"},
{"type":"Text","value":" "},
{"type":"Operator","value":"{"},
{"type":"Text","value":"\n "},
{"type":"Keyword","value":"abstract"},
{"type":"Text","value":" "},
{"type":"Keyword","value":"class"},
{"type":"Text","value":" "},
{"type":"NameClass","value":"Buffer"},
{"type":"Text","value":" "},
{"type":"Operator","value":"{"},
{"type":"Text","value":"\n "},
{"type":"Keyword","value":"type"},
{"type":"Text","value":" "},
{"type":"KeywordType","value":"T"},
{"type":"Operator","value":";"},
{"type":"Text","value":" "},
{"type":"Keyword","value":"val"},
{"type":"Text","value":" "},
{"type":"Name","value":"element"},
{"type":"Keyword","value":":"},
{"type":"Text","value":" "},
{"type":"KeywordType","value":"T"},
{"type":"Text","value":"\n "},
{"type":"Operator","value":"}"},
{"type":"Text","value":"\n "},
{"type":"Keyword","value":"abstract"},
{"type":"Text","value":" "},
{"type":"Keyword","value":"class"},
{"type":"Text","value":" "},
{"type":"NameClass","value":"SeqBuffer"},
{"type":"Text","value":" "},
{"type":"Operator","value":"{"},
{"type":"Text","value":"\n "},
{"type":"Keyword","value":"type"},
{"type":"Text","value":" "},
{"type":"KeywordType","value":"T"},
{"type":"Operator","value":";"},
{"type":"Text","value":" "},
{"type":"Keyword","value":"val"},
{"type":"Text","value":" "},
{"type":"Name","value":"element"},
{"type":"Keyword","value":":"},
{"type":"Text","value":" "},
{"type":"KeywordType","value":"Seq"},
{"type":"Text","value":""},
{"type":"Operator","value":"["},
{"type":"KeywordType","value":"T"},
{"type":"Operator","value":"];"},
{"type":"Text","value":" "},
{"type":"Keyword","value":"def"},
{"type":"Text","value":" "},
{"type":"Name","value":"length"},
{"type":"Text","value":" "},
{"type":"Keyword","value":"="},
{"type":"Text","value":" "},
{"type":"Name","value":"element"},
{"type":"Operator","value":"."},
{"type":"Name","value":"length"},
{"type":"Text","value":"\n "},
{"type":"Operator","value":"}"},
{"type":"Text","value":"\n "},
{"type":"Keyword","value":"def"},
{"type":"Text","value":" "},
{"type":"Name","value":"newIntBuffer"},
{"type":"Operator","value":"("},
{"type":"Name","value":"el"},
{"type":"Keyword","value":":"},
{"type":"Text","value":" "},
{"type":"KeywordType","value":"Int"},
{"type":"Operator","value":")"},
{"type":"Text","value":" "},
{"type":"Keyword","value":"="},
{"type":"Text","value":" "},
{"type":"Keyword","value":"new"},
{"type":"Text","value":" "},
{"type":"NameClass","value":"Buffer"},
{"type":"Text","value":" "},
{"type":"Operator","value":"{"},
{"type":"Text","value":"\n "},
{"type":"Keyword","value":"type"},
{"type":"Text","value":" "},
{"type":"KeywordType","value":"T"},
{"type":"Text","value":" "},
{"type":"Operator","value":"="},
{"type":"Text","value":" "},
{"type":"NameClass","value":"Int"},
{"type":"Operator","value":";"},
{"type":"Text","value":" "},
{"type":"Keyword","value":"val"},
{"type":"Text","value":" "},
{"type":"Name","value":"element"},
{"type":"Text","value":" "},
{"type":"Keyword","value":"="},
{"type":"Text","value":" "},
{"type":"Name","value":"el"},
{"type":"Text","value":"\n "},
{"type":"Operator","value":"}"},
{"type":"Text","value":"\n "},
{"type":"Keyword","value":"def"},
{"type":"Text","value":" "},
{"type":"Name","value":"newIntBuffer"},
{"type":"Operator","value":"("},
{"type":"Name","value":"el"},
{"type":"Keyword","value":":"},
{"type":"Text","value":" "},
{"type":"KeywordType","value":"Int*"},
{"type":"Operator","value":")"},
{"type":"Text","value":" "},
{"type":"Keyword","value":"="},
{"type":"Text","value":" "},
{"type":"Keyword","value":"new"},
{"type":"Text","value":" "},
{"type":"NameClass","value":"SeqBuffer"},
{"type":"Text","value":" "},
{"type":"Operator","value":"{"},
{"type":"Text","value":"\n "},
{"type":"Keyword","value":"type"},
{"type":"Text","value":" "},
{"type":"KeywordType","value":"T"},
{"type":"Text","value":" "},
{"type":"Operator","value":"="},
{"type":"Text","value":" "},
{"type":"NameClass","value":"Int"},
{"type":"Operator","value":";"},
{"type":"Text","value":" "},
{"type":"Keyword","value":"val"},
{"type":"Text","value":" "},
{"type":"Name","value":"element"},
{"type":"Text","value":" "},
{"type":"Keyword","value":"="},
{"type":"Text","value":" "},
{"type":"Name","value":"el"},
{"type":"Text","value":"\n "},
{"type":"Operator","value":"}"},
{"type":"Text","value":"\n "},
{"type":"Name","value":"println"},
{"type":"Operator","value":"("},
{"type":"Name","value":"newIntBuffer"},
{"type":"Operator","value":"("},
{"type":"LiteralNumberInteger","value":"1"},
{"type":"Operator","value":")."},
{"type":"Name","value":"element"},
{"type":"Operator","value":")"},
{"type":"Text","value":"\n "},
{"type":"Name","value":"println"},
{"type":"Operator","value":"("},
{"type":"Name","value":"newIntBuffer"},
{"type":"Operator","value":"("},
{"type":"LiteralNumberInteger","value":"1"},
{"type":"Operator","value":","},
{"type":"Text","value":" "},
{"type":"LiteralNumberInteger","value":"2"},
{"type":"Operator","value":","},
{"type":"Text","value":" "},
{"type":"LiteralNumberInteger","value":"3"},
{"type":"Operator","value":")."},
{"type":"Name","value":"length"},
{"type":"Operator","value":")"},
{"type":"Text","value":"\n"},
{"type":"Operator","value":"}"},
{"type":"Text","value":"\n"}
]