// Copyright (c) 2022, 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 $dot = 0x2E;

/// Space character.
const int $space = 0x20;

/// "Horizontal Tab" control character, common name.
const int $tab = 0x09;

/// "Line feed" control character.
const int $lf = 0x0A;

/// "Carriage return" control character.
const int $cr = 0x0D;

/// Character `>`.
const int $gt = 0x3E;

/// Character `<`.
const int $lt = 0x3C;

/// Character `(`.
const int $lparen = 0x28;

/// Character `)`.
const int $rparen = 0x29;

/// Character `\`.
const int $backslash = 0x5C;

/// Character `?`.
const int $question = 0x3F;

/// Character `!`.
const int $exclamation = 0x21;

/// Character `{`.
const int $lbrace = 0x7B;

/// Character `}`.
const int $rbrace = 0x7D;

/// Character `#`.
const int $hash = 0x23;

/// Character `^`.
const int $caret = 0x5E;

/// Character `/`.
const int $slash = 0x2F;

/// Character `_`.
const int $underscore = 0x5F;

/// Character `$`.
const int $dollar = 0x24;

/// Character `a`.
const int $a = 0x61;

/// Character `z`.
const int $z = 0x7A;

/// Character `A`.
const int $A = 0x41;

/// Character `Z`.
const int $Z = 0x5A;

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

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