tree-sitter-dart
Version:
Dart grammar attempt for tree-sitter
186 lines (139 loc) • 3.6 kB
Plain Text
========================
decimal integer literals
========================
123;
4;
50;
(program
(expression_statement (decimal_integer_literal))
(expression_statement (decimal_integer_literal))
(expression_statement (decimal_integer_literal)))
====================
hex integer literals
====================
0xa_bcd_ef0;
0Xa_bcd_ef0;
0X8000;
(program
(expression_statement (hex_integer_literal))
(expression_statement (hex_integer_literal))
(expression_statement (hex_integer_literal)))
===============================
floating point literals
===============================
4.23e9;
4.23e-9;
4.23e+9;
40.3e6;
40.3e-6;
1.234;
0.123456;
.12345;
1e4;
0.2e-2;
0.0e-4;
.2e-2;
5.4;
5.4e-10;
(program
(expression_statement (decimal_floating_point_literal))
(expression_statement (decimal_floating_point_literal))
(expression_statement (decimal_floating_point_literal))
(expression_statement (decimal_floating_point_literal))
(expression_statement (decimal_floating_point_literal))
(expression_statement (decimal_floating_point_literal))
(expression_statement (decimal_floating_point_literal))
(expression_statement (decimal_floating_point_literal))
(expression_statement (decimal_floating_point_literal))
(expression_statement (decimal_floating_point_literal))
(expression_statement (decimal_floating_point_literal))
(expression_statement (decimal_floating_point_literal))
(expression_statement (decimal_floating_point_literal))
(expression_statement (decimal_floating_point_literal)))
================
boolean literals
================
true;
false;
(program
(expression_statement (true))
(expression_statement (false)))
===============
string literals
===============
"";
"\"";
"This is a string";
"'";
'\n';
(program
(expression_statement (string_literal))
(expression_statement (string_literal (escape_sequence)))
(expression_statement (string_literal))
(expression_statement (string_literal))
(expression_statement (string_literal (escape_sequence))))
=============
null literals
=============
null;
(program
(expression_statement (null_literal)))
=============
multiline string literals with single quotes of same type inside
=============
'''
# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')
''';
---
(program (expression_statement (string_literal)))
=============
adjacent string concatentation
=============
final str = 'a string'
'another string';
final mixedStr = r'''(["'])((?:\\{2})*|(?:.*?[^\\](?:\\{2})*))\2|''' // with quotes.
r'([^ ]+))';
(program
(final_builtin)
(static_final_declaration_list (static_final_declaration (identifier) (string_literal)))
(final_builtin)
(static_final_declaration_list (static_final_declaration (identifier) (string_literal (comment)))))
=============
complex string interpolation
=============
'ERROR: $error${'\n$stackTrace' ?? ''}';
(program
(expression_statement (string_literal
(template_substitution (identifier_dollar_escaped))
(template_substitution
(if_null_expression
(string_literal (escape_sequence) (template_substitution (identifier_dollar_escaped)))
(string_literal))))))
=============
raw strings single
=============
r'\';
r'''\''';
(program
(expression_statement (string_literal))
(expression_statement (string_literal))
)
=============
raw strings double
=============
r"\";
r"""\""";
(program
(expression_statement (string_literal))
(expression_statement (string_literal))
)