// Copyright (c) 2021, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

/// 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;
