tenko
Version:
A "pixel perfect" 100% spec compliant ES2021 JavaScript parser written in JS.
225 lines (220 loc) • 4.37 kB
JavaScript
// All constants in this file will be unconditionally inlined in a build without scope tracking
// (Make sure to only make primitives `const`, use `let` for anything else. Even if it's a constant value otherwise.)
const $$A_61 = 0x61;
const $$A_UC_41 = 0x41;
const $$B_62 = 0x62;
const $$B_UC_42 = 0x42;
const $$C_63 = 0x63;
const $$C_UC_43 = 0x43;
const $$D_64 = 0x64;
const $$D_UC_44 = 0x44;
const $$E_65 = 0x65;
const $$E_UC_45 = 0x45;
const $$F_66 = 0x66;
const $$F_UC_46 = 0x46;
const $$G_67 = 0x67;
const $$G_UC_47 = 0x47;
const $$H_68 = 0x68;
const $$H_UC_48 = 0x48;
const $$I_69 = 0x69;
const $$I_UC_49 = 0x49;
const $$J_6A = 0x6A;
const $$J_UC_4A = 0x4A;
const $$K_6B = 0x6B;
const $$K_UC_4B = 0x4B;
const $$L_6C = 0x6C;
const $$L_UC_4C = 0x4C;
const $$M_6D = 0x6D;
const $$M_UC_4D = 0x4D;
const $$N_6E = 0x6E;
const $$N_UC_4E = 0x4E;
const $$O_6F = 0x6F;
const $$O_UC_4F = 0x4F;
const $$P_70 = 0x70;
const $$P_UC_50 = 0x50;
const $$Q_71 = 0x71;
const $$Q_UC_51 = 0x51;
const $$R_72 = 0x72;
const $$R_UC_52 = 0x52;
const $$S_73 = 0x73;
const $$S_UC_53 = 0x53;
const $$T_74 = 0x74;
const $$T_UC_54 = 0x54;
const $$U_75 = 0x75;
const $$U_UC_55 = 0x55;
const $$V_76 = 0x76;
const $$V_UC_56 = 0x56;
const $$W_77 = 0x77;
const $$W_UC_57 = 0x57;
const $$X_78 = 0x78;
const $$X_UC_58 = 0x58;
const $$Y_79 = 0x79;
const $$Y_UC_59 = 0x59;
const $$Z_7A = 0x7a;
const $$Z_UC_5A = 0x5a;
const $$0_30 = 0x30;
const $$1_31 = 0x31;
const $$2_32 = 0x32;
const $$3_33 = 0x33;
const $$4_34 = 0x34;
const $$5_35 = 0x35;
const $$6_36 = 0x36;
const $$7_37 = 0x37;
const $$8_38 = 0x38;
const $$9_39 = 0x39;
const $$NULL_00 = 0;
const $$BACKSPACE_08 = 8;
const $$TAB_09 = 0x09;
const $$LF_0A = 0x0A; // \n
const $$VTAB_0B = 0x0B; // whitespace
const $$FF_0C = 0x0C; // whitespace
const $$CR_0D = 0x0D; // \r (note that crlf is considered a single character for line number reporting)
const $$SPACE_20 = 0x20;
const $$EXCL_21 = 0x21;
const $$DQUOTE_22 = 0x22;
const $$HASH_23 = 0x23;
const $$$_24 = 0x24;
const $$PERCENT_25 = 0x25;
const $$AND_26 = 0x26;
const $$SQUOTE_27 = 0x27;
const $$PAREN_L_28 = 0x28;
const $$PAREN_R_29 = 0x29;
const $$STAR_2A = 0x2a;
const $$PLUS_2B = 0x2b;
const $$COMMA_2C = 0x2c;
const $$DASH_2D = 0x2d;
const $$DOT_2E = 0x2e;
const $$FWDSLASH_2F = 0x2f;
const $$COLON_3A = 0x3a;
const $$SEMI_3B = 0x3b;
const $$LT_3C = 0x3c;
const $$IS_3D = 0x3d;
const $$GT_3E = 0x3e;
const $$QMARK_3F = 0x3f;
const $$SQUARE_L_5B = 0x5b;
const $$BACKSLASH_5C = 0x5c;
const $$SQUARE_R_5D = 0x5d;
const $$XOR_5E = 0x5e;
const $$LODASH_5F = 0x5f;
const $$TICK_60 = 0x60;
const $$CURLY_L_7B = 0x7b;
const $$CURLY_R_7D = 0x7d;
const $$TILDE_7E = 0x7e;
const $$OR_7C = 0x7c;
const $$NBSP_A0 = 0xA0; // considered a space
const $$ZWS_200B = 0x200B;
const $$ZWNJ_200C = 0x200C; // may be part of identifiers but not first char
const $$ZWJ_200D = 0x200D; // may be part of identifiers but not first char
const $$LS_2029 = 0x2029; // valid newline
const $$PS_2028 = 0x2028; // valid newline
const $$BOM_FEFF = 0xFEFF; // considered a space
export {
$$A_61,
$$A_UC_41,
$$B_62,
$$B_UC_42,
$$C_63,
$$C_UC_43,
$$D_64,
$$D_UC_44,
$$E_65,
$$E_UC_45,
$$F_66,
$$F_UC_46,
$$G_67,
$$G_UC_47,
$$H_68,
$$H_UC_48,
$$I_69,
$$I_UC_49,
$$J_6A,
$$J_UC_4A,
$$K_6B,
$$K_UC_4B,
$$L_6C,
$$L_UC_4C,
$$M_6D,
$$M_UC_4D,
$$N_6E,
$$N_UC_4E,
$$O_6F,
$$O_UC_4F,
$$P_70,
$$P_UC_50,
$$Q_71,
$$Q_UC_51,
$$R_72,
$$R_UC_52,
$$S_73,
$$S_UC_53,
$$T_74,
$$T_UC_54,
$$U_75,
$$U_UC_55,
$$V_76,
$$V_UC_56,
$$W_77,
$$W_UC_57,
$$X_78,
$$X_UC_58,
$$Y_79,
$$Y_UC_59,
$$Z_7A,
$$Z_UC_5A,
$$0_30,
$$1_31,
$$2_32,
$$3_33,
$$4_34,
$$5_35,
$$6_36,
$$7_37,
$$8_38,
$$9_39,
$$NULL_00,
$$BACKSPACE_08,
$$TAB_09,
$$LF_0A,
$$VTAB_0B,
$$FF_0C,
$$CR_0D,
$$SPACE_20,
$$EXCL_21,
$$DQUOTE_22,
$$HASH_23,
$$$_24,
$$PERCENT_25,
$$AND_26,
$$SQUOTE_27,
$$PAREN_L_28,
$$PAREN_R_29,
$$STAR_2A,
$$PLUS_2B,
$$COMMA_2C,
$$DASH_2D,
$$DOT_2E,
$$FWDSLASH_2F,
$$COLON_3A,
$$SEMI_3B,
$$LT_3C,
$$IS_3D,
$$GT_3E,
$$QMARK_3F,
$$SQUARE_L_5B,
$$BACKSLASH_5C,
$$SQUARE_R_5D,
$$XOR_5E,
$$LODASH_5F,
$$TICK_60,
$$CURLY_L_7B,
$$CURLY_R_7D,
$$TILDE_7E,
$$OR_7C,
$$NBSP_A0,
$$ZWS_200B,
$$ZWNJ_200C,
$$ZWJ_200D,
$$LS_2029,
$$PS_2028,
$$BOM_FEFF,
};