Lexer: support underscores in numeric literals

This commit is contained in:
Mikhail Zarechenskiy
2016-11-08 18:38:56 +03:00
parent c956428d96
commit a77290e572
7 changed files with 1296 additions and 1115 deletions
+10 -1
View File
@@ -16,5 +16,14 @@ val array = array<Any>(
1e1f,
1.0e1f,
1e-1f,
1.0e-1f
1.0e-1f,
.1_1,
3.141_592,
1e1__3_7,
1_0f,
1e1_2f,
2_2.0f,
.3_3f,
3.14_16f,
6.022___137e+2_3f
)
+46 -1
View File
@@ -112,5 +112,50 @@ JetFile: FloatingPointLiteral.kt
VALUE_ARGUMENT
FLOAT_CONSTANT
PsiElement(FLOAT_CONSTANT)('1.0e-1f')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_ARGUMENT
FLOAT_CONSTANT
PsiElement(FLOAT_CONSTANT)('.1_1')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_ARGUMENT
FLOAT_CONSTANT
PsiElement(FLOAT_CONSTANT)('3.141_592')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_ARGUMENT
FLOAT_CONSTANT
PsiElement(FLOAT_CONSTANT)('1e1__3_7')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_ARGUMENT
FLOAT_CONSTANT
PsiElement(FLOAT_CONSTANT)('1_0f')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_ARGUMENT
FLOAT_CONSTANT
PsiElement(FLOAT_CONSTANT)('1e1_2f')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_ARGUMENT
FLOAT_CONSTANT
PsiElement(FLOAT_CONSTANT)('2_2.0f')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_ARGUMENT
FLOAT_CONSTANT
PsiElement(FLOAT_CONSTANT)('.3_3f')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_ARGUMENT
FLOAT_CONSTANT
PsiElement(FLOAT_CONSTANT)('3.14_16f')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_ARGUMENT
FLOAT_CONSTANT
PsiElement(FLOAT_CONSTANT)('6.022___137e+2_3f')
PsiWhiteSpace('\n')
PsiElement(RPAR)(')')
PsiElement(RPAR)(')')
+13 -1
View File
@@ -14,7 +14,19 @@ val array = array<Any>(
0X1l,
0b1l,
0B1l,
0
0,
1_2,
12__34,
0x1_2_3_4,
0B0,
0b0001_0010_0100_1000,
1_2L,
12__34l,
0x1_2_3_4L,
0B0L,
0b0001_0010_0100_1000l,
0xa_af1,
0xa_af_1
)
val a = 01
+61 -1
View File
@@ -102,6 +102,66 @@ JetFile: IntegerLiteral.kt
VALUE_ARGUMENT
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('0')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_ARGUMENT
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('1_2')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_ARGUMENT
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('12__34')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_ARGUMENT
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('0x1_2_3_4')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_ARGUMENT
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('0B0')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_ARGUMENT
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('0b0001_0010_0100_1000')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_ARGUMENT
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('1_2L')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_ARGUMENT
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('12__34l')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_ARGUMENT
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('0x1_2_3_4L')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_ARGUMENT
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('0B0L')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_ARGUMENT
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('0b0001_0010_0100_1000l')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_ARGUMENT
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('0xa_af1')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_ARGUMENT
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('0xa_af_1')
PsiWhiteSpace('\n')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n\n')
@@ -115,4 +175,4 @@ JetFile: IntegerLiteral.kt
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('0')
PsiErrorElement:Property getter or setter expected
PsiElement(INTEGER_LITERAL)('1')
PsiElement(INTEGER_LITERAL)('1')