Add support for BigInt

This commit is contained in:
Sebastian Pahnke 2018-10-05 17:22:48 +02:00
parent 06ba3ff7e8
commit 5e89da1eef
3 changed files with 184 additions and 4 deletions

View file

@ -396,6 +396,96 @@ testTokenization('typescript', [
]
}],
// Bigint
[{
line: '0n',
tokens: [
{ startIndex: 0, type: 'number.ts' }
]
}],
[{
line: ' 0n',
tokens: [
{ startIndex: 0, type: '' },
{ startIndex: 1, type: 'number.ts' }
]
}],
[{
line: ' 0n ',
tokens: [
{ startIndex: 0, type: '' },
{ startIndex: 1, type: 'number.ts' },
{ startIndex: 3, type: '' }
]
}],
[{
line: '0n ',
tokens: [
{ startIndex: 0, type: 'number.ts' },
{ startIndex: 2, type: '' }
]
}],
[{
line: '0n+0n',
tokens: [
{ startIndex: 0, type: 'number.ts' },
{ startIndex: 2, type: 'delimiter.ts' },
{ startIndex: 3, type: 'number.ts' }
]
}],
[{
line: '100n+10n',
tokens: [
{ startIndex: 0, type: 'number.ts' },
{ startIndex: 4, type: 'delimiter.ts' },
{ startIndex: 5, type: 'number.ts' }
]
}],
[{
line: '0n + 0n',
tokens: [
{ startIndex: 0, type: 'number.ts' },
{ startIndex: 2, type: '' },
{ startIndex: 3, type: 'delimiter.ts' },
{ startIndex: 4, type: '' },
{ startIndex: 5, type: 'number.ts' }
]
}],
[{
line: '0b101n',
tokens: [
{ startIndex: 0, type: 'number.binary.ts' }
]
}],
[{
line: '0123n',
tokens: [
{ startIndex: 0, type: 'number.octal.ts' }
]
}],
[{
line: '0o123n',
tokens: [
{ startIndex: 0, type: 'number.octal.ts' }
]
}],
[{
line: '0x123n',
tokens: [
{ startIndex: 0, type: 'number.hex.ts' }
]
}],
// Regular Expressions
[{
line: '//',

View file

@ -146,10 +146,10 @@ export const language = {
// numbers
[/(@digits)[eE]([\-+]?(@digits))?/, 'number.float'],
[/(@digits)\.(@digits)([eE][\-+]?(@digits))?/, 'number.float'],
[/0[xX](@hexdigits)/, 'number.hex'],
[/0[oO]?(@octaldigits)/, 'number.octal'],
[/0[bB](@binarydigits)/, 'number.binary'],
[/(@digits)/, 'number'],
[/0[xX](@hexdigits)n?/, 'number.hex'],
[/0[oO]?(@octaldigits)n?/, 'number.octal'],
[/0[bB](@binarydigits)n?/, 'number.binary'],
[/(@digits)n?/, 'number'],
// delimiter: after number because of .\d floats
[/[;,.]/, 'delimiter'],