pr47/diag/
diag_data.rs

1#![allow(non_upper_case_globals)]
2
3// notes
4pub const note_commence_placeholder: u32 = 1000;
5
6// errors
7pub const err_commence_placeholder: u32 = 2000;
8pub const err_unexpected_control_char_0: u32 = 2001;
9pub const err_unclosed_string_literal: u32 = 2002;
10pub const err_reserved_identifier_0: u32 = 2003;
11pub const err_reserved_symbol_0: u32 = 2004;
12pub const err_expected_token_0_got_1: u32 = 2005;
13pub const err_unexpected_eoi: u32 = 2006;
14pub const err_import_decl_disallow_attr: u32 = 2007;
15pub const err_export_decl_disallow_attr: u32 = 2008;
16pub const err_expected_any_of_0_got_1: u32 = 2009;
17pub const err_no_top_level_var_decl: u32 = 2010;
18pub const err_expected_unqual_id: u32 = 2011;
19
20// warnings
21pub const warn_commence_placeholder: u32 = 4000;
22pub const warn_space_character_0_ignored: u32 = 4001;
23pub const warn_underscored_id_reserved: u32 = 4002;
24
25pub const fn is_error(code: u32) -> bool {
26    code >= err_commence_placeholder && code < warn_commence_placeholder
27}
28
29pub const fn diag_message(code: u32) -> &'static str {
30    if code > warn_commence_placeholder {
31        match code {
32            warn_space_character_0_ignored => "unicode space character '?0' ignored",
33            warn_underscored_id_reserved =>
34                "identifiers starting with underscore (`_`) are considered special",
35            _ => "INVALID_ERROR_CODE"
36        }
37    } else if code > err_commence_placeholder {
38        match code {
39            err_unexpected_control_char_0 => "unexpected control character '?0'",
40            err_unclosed_string_literal => "unclosed string literal",
41            err_reserved_identifier_0 => "unexpected use of reserved identifier `?0`",
42            err_reserved_symbol_0 => "unexpected use of reserved symbol `?0`",
43            err_expected_token_0_got_1 => "expected ?0, got ?1",
44            err_unexpected_eoi => "unexpected end of input",
45            err_import_decl_disallow_attr => "cannot add attribute to `import`s",
46            err_export_decl_disallow_attr => "cannot add attribute to `export`s",
47            err_expected_any_of_0_got_1 => "expected any of ?0, got ?1",
48            err_no_top_level_var_decl => "variable declaration cannot appear at top level",
49            err_expected_unqual_id => "expected unqualified identifier",
50            _ => "INVALID_ERROR_CODE"
51        }
52    } else /* if code > note_commence_placeholder */ {
53        match code {
54            _ => "INVALID_ERROR_CODE"
55        }
56    }
57}