new literal types

This commit is contained in:
ProgramSnail 2023-08-12 15:08:53 +03:00
parent c9bef5a02e
commit 2cb4ebd03d
4 changed files with 179 additions and 72 deletions

View file

@ -140,7 +140,7 @@ module.exports = grammar({
array_access: $ => seq($._scoped_expression, '[', $._super_expression, ']'),
tuple_access: $ => seq($._scoped_expression, '.', $.number_literal),
tuple_access: $ => seq($._scoped_expression, '.', $.index_literal),
loop_control: $ => choice('break', 'continue'),
@ -306,19 +306,29 @@ module.exports = grammar({
operator_tail2: $ => /[+\-*/%^!?|&,<>=]+\.\./,
operator_tail3: $ => /[+\-*/%^!?|&,<>=]+\.\.\./,
float_number_literal: $ => /[0-9]+\.[0-9]+/,
number_literal: $ => /[0-9]+/,
float_literal: $ => /[0-9]+\.[0-9]+f/,
double_literal: $ => /[0-9]+\.[0-9]+/,
int_literal: $ => /\-?[0-9]+i/,
long_literal: $ => /\-?[0-9]+l/,
index_literal: $ => /[0-9]+/,
string_literal: $ => seq('\"', /([^\\\"]|(\\.))*/, '\"'),
unicode_string_literal: $ => seq('\"', /([^\\\"]|(\\.))*/, '\"u'),
char_literal: $ => seq('\'\'', /[^\\\']|(\\.)/, '\'\''),
unicode_literal: $ => seq('\'\'', /[^\\\']|(\\.)/, '\'\'u'),
bool_literal: $ => choice('true', 'false'),
unit_literal: $ => '()',
null_literal: $ => 'null',
_literal: $ => choice(
$.float_number_literal,
$.number_literal,
$.float_literal,
$.double_literal,
$.int_literal,
$.long_literal,
$.index_literal,
$.string_literal,
$.unicode_string_literal,
$.char_literal,
$.unicode_literal,
$.bool_literal,
$.unit_literal,
$.null_literal,