// Copyright (c) 2021, the Dart project authors.
// Copyright (c) 2006, Kirill Simonov.
//
// Use of this source code is governed by an MIT-style
// license that can be found in the LICENSE file or at
// https://opensource.org/licenses/MIT.

/// Character `+`.
const int $plus = 0x2b;

/// Character `-`.
const int $minus = 0x2d;

/// Character `.`.
const int $dot = 0x2e;

/// Character `0`.
const int $0 = 0x30;

/// Character `9`.
const int $9 = 0x39;

/// Character `F`.
const int $F = 0x46;

/// Character `N`.
const int $N = 0x4e;

/// Character `T`.
const int $T = 0x54;

/// Character `f`.
const int $f = 0x66;

/// Character `n`.
const int $n = 0x6e;

/// Character `o`.
const int $o = 0x6f;

/// Character `t`.
const int $t = 0x74;

/// Character `x`.
const int $x = 0x78;

/// Character `~`.
const int $tilde = 0x7e;
