diff --git a/lexers/embedded/kotlin.xml b/lexers/embedded/kotlin.xml
index ec02c4e..28bf2d8 100644
--- a/lexers/embedded/kotlin.xml
+++ b/lexers/embedded/kotlin.xml
@@ -113,9 +113,7 @@
-
-
-
+
@@ -137,8 +135,20 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/lexers/testdata/kotlin.actual b/lexers/testdata/kotlin.actual
index a3b8cda..9df3a61 100644
--- a/lexers/testdata/kotlin.actual
+++ b/lexers/testdata/kotlin.actual
@@ -10,7 +10,9 @@ fun main(args: Array) {
StringBuilder().apply {
append(multiline)
}
- val unsigned = 0x00UL + 123u + 76.54
+ val ints = 9_000 + 1__2 + 0b0110_10 + 0B011010
+ val floats = 1.0 + .45 + 1_2.3_4E5_6 + 56f + 90F + 1.2f
+ val unsigned = 0x00UL + 123u
}
/*
*/
diff --git a/lexers/testdata/kotlin.expected b/lexers/testdata/kotlin.expected
index ea87ddf..8b85107 100644
--- a/lexers/testdata/kotlin.expected
+++ b/lexers/testdata/kotlin.expected
@@ -56,19 +56,63 @@
{"type":"Text","value":"\n "},
{"type":"Keyword","value":"val"},
{"type":"Text","value":" "},
+ {"type":"NameProperty","value":"ints"},
+ {"type":"Text","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"LiteralNumberInteger","value":"9_000"},
+ {"type":"Text","value":" "},
+ {"type":"Punctuation","value":"+"},
+ {"type":"Text","value":" "},
+ {"type":"LiteralNumberInteger","value":"1__2"},
+ {"type":"Text","value":" "},
+ {"type":"Punctuation","value":"+"},
+ {"type":"Text","value":" "},
+ {"type":"LiteralNumberBin","value":"0b0110_10"},
+ {"type":"Text","value":" "},
+ {"type":"Punctuation","value":"+"},
+ {"type":"Text","value":" "},
+ {"type":"LiteralNumberBin","value":"0B011010"},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"val"},
+ {"type":"Text","value":" "},
+ {"type":"NameProperty","value":"floats"},
+ {"type":"Text","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"LiteralNumberFloat","value":"1.0"},
+ {"type":"Text","value":" "},
+ {"type":"Punctuation","value":"+"},
+ {"type":"Text","value":" "},
+ {"type":"LiteralNumberFloat","value":".45"},
+ {"type":"Text","value":" "},
+ {"type":"Punctuation","value":"+"},
+ {"type":"Text","value":" "},
+ {"type":"LiteralNumberFloat","value":"1_2.3_4E5_6"},
+ {"type":"Text","value":" "},
+ {"type":"Punctuation","value":"+"},
+ {"type":"Text","value":" "},
+ {"type":"LiteralNumberFloat","value":"56f"},
+ {"type":"Text","value":" "},
+ {"type":"Punctuation","value":"+"},
+ {"type":"Text","value":" "},
+ {"type":"LiteralNumberFloat","value":"90F"},
+ {"type":"Text","value":" "},
+ {"type":"Punctuation","value":"+"},
+ {"type":"Text","value":" "},
+ {"type":"LiteralNumberFloat","value":"1.2f"},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"val"},
+ {"type":"Text","value":" "},
{"type":"NameProperty","value":"unsigned"},
{"type":"Text","value":" "},
{"type":"Punctuation","value":"="},
{"type":"Text","value":" "},
- {"type":"LiteralNumber","value":"0x00UL"},
+ {"type":"LiteralNumberHex","value":"0x00UL"},
{"type":"Text","value":" "},
{"type":"Punctuation","value":"+"},
{"type":"Text","value":" "},
- {"type":"LiteralNumber","value":"123u"},
- {"type":"Text","value":" "},
- {"type":"Punctuation","value":"+"},
- {"type":"Text","value":" "},
- {"type":"LiteralNumber","value":"76.54"},
+ {"type":"LiteralNumberInteger","value":"123u"},
{"type":"Text","value":"\n"},
{"type":"Punctuation","value":"}"},
{"type":"Text","value":"\n"},
@@ -94,7 +138,7 @@
{"type":"Text","value":" "},
{"type":"Operator","value":"?:"},
{"type":"Text","value":" "},
- {"type":"LiteralNumber","value":"0"},
+ {"type":"LiteralNumberInteger","value":"0"},
{"type":"Text","value":"\n\n"},
{"type":"Keyword","value":"fun"},
{"type":"Text","value":" "},
@@ -120,11 +164,11 @@
{"type":"Text","value":" "},
{"type":"Punctuation","value":"{"},
{"type":"Text","value":"\n "},
- {"type":"LiteralNumber","value":"1"},
+ {"type":"LiteralNumberInteger","value":"1"},
{"type":"Text","value":" "},
{"type":"Punctuation","value":"+"},
{"type":"Text","value":" "},
- {"type":"LiteralNumber","value":"2"},
+ {"type":"LiteralNumberInteger","value":"2"},
{"type":"Text","value":"\n"},
{"type":"Punctuation","value":"}"},
{"type":"Text","value":"\n\n"},
@@ -275,7 +319,7 @@
{"type":"Text","value":" "},
{"type":"Punctuation","value":"="},
{"type":"Text","value":" "},
- {"type":"LiteralNumber","value":"123"},
+ {"type":"LiteralNumberInteger","value":"123"},
{"type":"Text","value":"\n "},
{"type":"Name","value":"println"},
{"type":"Punctuation","value":"("},
@@ -320,7 +364,7 @@
{"type":"Text","value":" "},
{"type":"Operator","value":"%="},
{"type":"Text","value":" "},
- {"type":"LiteralNumber","value":"2"},
+ {"type":"LiteralNumberInteger","value":"2"},
{"type":"Text","value":"\n\t"},
{"type":"Name","value":"a"},
{"type":"Text","value":" "},
@@ -332,27 +376,27 @@
{"type":"Text","value":" "},
{"type":"Operator","value":"*="},
{"type":"Text","value":" "},
- {"type":"LiteralNumber","value":"2"},
+ {"type":"LiteralNumberInteger","value":"2"},
{"type":"Text","value":"\n\t"},
{"type":"Name","value":"a"},
{"type":"Operator","value":"++"},
{"type":"Text","value":"\n\t"},
{"type":"Name","value":"b"},
{"type":"Operator","value":"+="},
- {"type":"LiteralNumber","value":"2"},
+ {"type":"LiteralNumberInteger","value":"2"},
{"type":"Text","value":"\n\t"},
{"type":"Name","value":"b"},
{"type":"Operator","value":"--"},
{"type":"Text","value":"\n\t"},
{"type":"Name","value":"a"},
{"type":"Operator","value":"-="},
- {"type":"LiteralNumber","value":"1"},
+ {"type":"LiteralNumberInteger","value":"1"},
{"type":"Text","value":"\n\t"},
{"type":"Name","value":"a"},
{"type":"Text","value":" "},
{"type":"Operator","value":"/="},
{"type":"Text","value":" "},
- {"type":"LiteralNumber","value":"2"},
+ {"type":"LiteralNumberInteger","value":"2"},
{"type":"Text","value":"\n\t"},
{"type":"Name","value":"a"},
{"type":"Text","value":" "},
@@ -562,7 +606,7 @@
{"type":"Text","value":" "},
{"type":"Punctuation","value":"="},
{"type":"Text","value":" "},
- {"type":"LiteralNumber","value":"0"},
+ {"type":"LiteralNumberInteger","value":"0"},
{"type":"Text","value":"\n\n "},
{"type":"Punctuation","value":"}"},
{"type":"Text","value":"\n"},
@@ -594,7 +638,7 @@
{"type":"Text","value":" "},
{"type":"Punctuation","value":"="},
{"type":"Text","value":" "},
- {"type":"LiteralNumber","value":"123"},
+ {"type":"LiteralNumberInteger","value":"123"},
{"type":"Text","value":"\n\n"},
{"type":"Keyword","value":"class"},
{"type":"Text","value":" "},