Character names
Do you need name for characteres?
Character names 0-127 Reference: http://unicode.org/Public/UNIDATA/UnicodeData.txt const wchar_t* GetCharName(wchar_t ch) { switch(ch) { case 0x0000: return L"NULL"; case 0x0001: return L"START_OF_HEADING"; case 0x0002: return L"START_OF_TEXT"; case 0x0003: return L"END_OF_TEXT"; case 0x0004: return L"END_OF_TRANSMISSION"; case 0x0005: return L"ENQUIRY"; case 0x0006: return L"ACKNOWLEDGE"; case 0x0007: return L"BELL"; case 0x0008: return L"BACKSPACE"; case 0x0009: return L"CHARACTER_TABULATION"; case 0x000A: return L"LINE_FEED"; case 0x000B: return L"LINE_TABULATION"; case 0x000C: return L"FORM_FEED"; case 0x000D: return L"CARRIAGE_RETURN"; case 0x000E: return L"SHIFT_OUT"; case 0x000F: return L"SHIFT_IN"; case 0x0010: return L"DATA_LINK_ESCAPE"; case 0x0011: return L"DEVICE_CONTROL_ONE"; case 0x0012: return L"DEVICE_CONTROL_TWO"; case 0x0013: return L"DEVICE_CONTROL_THREE"; case 0x0014: return L"DEVICE_CONTROL_FOUR"; case 0x0015: return L"NEGATIVE_ACKNOWLEDGE"; case 0x0016: return L"SYNCHRONOUS_IDLE"; case 0x0017: return L"END_OF_TRANSMISSION_BLOCK"; case 0x0018: return L"CANCEL"; case 0x0019: return L"END_OF_MEDIUM"; case 0x001A: return L"SUBSTITUTE"; case 0x001B: return L"ESCAPE"; case 0x001C: return L"INFORMATION_SEPARATOR_FOUR"; case 0x001D: return L"INFORMATION_SEPARATOR_THREE"; case 0x001E: return L"INFORMATION_SEPARATOR_TWO"; case 0x001F: return L"INFORMATION_SEPARATOR_ONE"; case 0x0020: return L"SPACE"; case 0x0021: return L"EXCLAMATION_MARK"; //! case 0x0022: return L"QUOTATION_MARK"; //" case 0x0023: return L"NUMBER_SIGN"; //# case 0x0024: return L"DOLLAR_SIGN"; //$ case 0x0025: return L"PERCENT_SIGN"; //% case 0x0026: return L"AMPERSAND"; //& case 0x0027: return L"APOSTROPHE"; //' case 0x0028: return L"LEFT_PARENTHESIS"; //( case 0x0029: return L"RIGHT_PARENTHESIS"; //) case 0x002A: return L"ASTERISK"; //* case 0x002B: return L"PLUS_SIGN"; //+ case 0x002C: return L"COMMA"; //, case 0x002D: return L"HYPHEN_MINUS"; //- case 0x002E: return L"FULL_STOP"; //. case 0x002F: return L"SOLIDUS"; /// case 0x0030: return L"DIGIT_ZERO"; //0 case 0x0031: return L"DIGIT_ONE"; //1 case 0x0032: return L"DIGIT_TWO"; //2 case 0x0033: return L"DIGIT_THREE"; //3 case 0x0034: return L"DIGIT_FOUR"; //4 case 0x0035: return L"DIGIT_FIVE"; //5 case 0x0036: return L"DIGIT_SIX"; //6 case 0x0037: return L"DIGIT_SEVEN"; //7 case 0x0038: return L"DIGIT_EIGHT"; //8 case 0x0039: return L"DIGIT_NINE"; //9 case 0x003A: return L"COLON"; //: case 0x003B: return L"SEMICOLON"; //; case 0x003C: return L"LESS_THAN_SIGN"; //< case 0x003D: return L"EQUALS_SIGN"; //= case 0x003E: return L"GREATER_THAN_SIGN"; //> case 0x003F: return L"QUESTION_MARK"; //? case 0x0040: return L"COMMERCIAL_AT"; //@ case 0x0041: return L"LATIN_CAPITAL_LETTER_A"; //A case 0x0042: return L"LATIN_CAPITAL_LETTER_B"; //B case 0x0043: return L"LATIN_CAPITAL_LETTER_C"; //C case 0x0044: return L"LATIN_CAPITAL_LETTER_D"; //D case 0x0045: return L"LATIN_CAPITAL_LETTER_E"; //E case 0x0046: return L"LATIN_CAPITAL_LETTER_F"; //F case 0x0047: return L"LATIN_CAPITAL_LETTER_G"; //G case 0x0048: return L"LATIN_CAPITAL_LETTER_H"; //H case 0x0049: return L"LATIN_CAPITAL_LETTER_I"; //I case 0x004A: return L"LATIN_CAPITAL_LETTER_J"; //J case 0x004B: return L"LATIN_CAPITAL_LETTER_K"; //K case 0x004C: return L"LATIN_CAPITAL_LETTER_L"; //L case 0x004D: return L"LATIN_CAPITAL_LETTER_M"; //M case 0x004E: return L"LATIN_CAPITAL_LETTER_N"; //N case 0x004F: return L"LATIN_CAPITAL_LETTER_O"; //O case 0x0050: return L"LATIN_CAPITAL_LETTER_P"; //P case 0x0051: return L"LATIN_CAPITAL_LETTER_Q"; //Q case 0x0052: return L"LATIN_CAPITAL_LETTER_R"; //R case 0x0053: return L"LATIN_CAPITAL_LETTER_S"; //S case 0x0054: return L"LATIN_CAPITAL_LETTER_T"; //T case 0x0055: return L"LATIN_CAPITAL_LETTER_U"; //U case 0x0056: return L"LATIN_CAPITAL_LETTER_V"; //V case 0x0057: return L"LATIN_CAPITAL_LETTER_W"; //W case 0x0058: return L"LATIN_CAPITAL_LETTER_X"; //X case 0x0059: return L"LATIN_CAPITAL_LETTER_Y"; //Y case 0x005A: return L"LATIN_CAPITAL_LETTER_Z"; //Z case 0x005B: return L"LEFT_SQUARE_BRACKET"; //[ case 0x005C: return L"REVERSE_SOLIDUS"; case 0x005D: return L"RIGHT_SQUARE_BRACKET"; //] case 0x005E: return L"CIRCUMFLEX_ACCENT"; //^ case 0x005F: return L"LOW_LINE"; //_ case 0x0060: return L"GRAVE_ACCENT"; //` case 0x0061: return L"LATIN_SMALL_LETTER_A"; //a case 0x0062: return L"LATIN_SMALL_LETTER_B"; //b case 0x0063: return L"LATIN_SMALL_LETTER_C"; //c case 0x0064: return L"LATIN_SMALL_LETTER_D"; //d case 0x0065: return L"LATIN_SMALL_LETTER_E"; //e case 0x0066: return L"LATIN_SMALL_LETTER_F"; //f case 0x0067: return L"LATIN_SMALL_LETTER_G"; //g case 0x0068: return L"LATIN_SMALL_LETTER_H"; //h case 0x0069: return L"LATIN_SMALL_LETTER_I"; //i case 0x006A: return L"LATIN_SMALL_LETTER_J"; //j case 0x006B: return L"LATIN_SMALL_LETTER_K"; //k case 0x006C: return L"LATIN_SMALL_LETTER_L"; //l case 0x006D: return L"LATIN_SMALL_LETTER_M"; //m case 0x006E: return L"LATIN_SMALL_LETTER_N"; //n case 0x006F: return L"LATIN_SMALL_LETTER_O"; //o case 0x0070: return L"LATIN_SMALL_LETTER_P"; //p case 0x0071: return L"LATIN_SMALL_LETTER_Q"; //q case 0x0072: return L"LATIN_SMALL_LETTER_R"; //r case 0x0073: return L"LATIN_SMALL_LETTER_S"; //s case 0x0074: return L"LATIN_SMALL_LETTER_T"; //t case 0x0075: return L"LATIN_SMALL_LETTER_U"; //u case 0x0076: return L"LATIN_SMALL_LETTER_V"; //v case 0x0077: return L"LATIN_SMALL_LETTER_W"; //w case 0x0078: return L"LATIN_SMALL_LETTER_X"; //x case 0x0079: return L"LATIN_SMALL_LETTER_Y"; //y case 0x007A: return L"LATIN_SMALL_LETTER_Z"; //z case 0x007B: return L"LEFT_CURLY_BRACKET"; //{ case 0x007C: return L"VERTICAL_LINE"; //| case 0x007D: return L"RIGHT_CURLY_BRACKET"; //} case 0x007E: return L"TILDE"; //~ } }
const wchar_t* IntToLiteral(int i) { switch (i) { case '\0': return L"\\0"; case '\r': return L"\\r"; case '\n': return L"\\n"; case '\t': return L"\\t"; case '\'': return L"\\'"; case '\"': return L"\\\""; case '\?': return L"\\?"; case '\\': return L"\\\\"; case '\a': return L"\\a"; case '\b': return L"\\b"; case '\f': return L"\\f"; case '\v': return L"\\v"; } static wchar_t ch[2] = {0,0}; ch[0] = wchar_t(i); return ch; }
Useful to TklGen:
token EndMark = '\0'; token CHARACTER_TABULATION = '\t'; token LINE_FEED = '\n'; token LINE_TABULATION = '\v'; token FORM_FEED = '\f'; token CARRIAGE_RETURN = '\r'; token SPACE = ' '; token EXCLAMATION_MARK = '!'; token QUOTATION_MARK = '\"'; token NUMBER_SIGN = '#'; token DOLLAR_SIGN = '$'; token PERCENT_SIGN = '%'; token AMPERSAND = '&'; token APOSTROPHE = '\''; token LEFT_PARENTHESIS = '('; token RIGHT_PARENTHESIS = ')'; token ASTERISK = '*'; token PLUS_SIGN = '+'; token COMMA = ','; token HYPHEN_MINUS = '-'; token FULL_STOP = '.'; token SOLIDUS = '/'; token COLON = ':'; token SEMICOLON = ';'; token LESS_THAN_SIGN = '<'; token EQUALS_SIGN = '='; token GREATER_THAN_SIGN = '>'; token QUESTION_MARK = '\?'; token COMMERCIAL_AT = '@'; token LEFT_SQUARE_BRACKET = '['; token REVERSE_SOLIDUS = '\\'; token RIGHT_SQUARE_BRACKET = ']'; token CIRCUMFLEX_ACCENT = '^'; token LOW_LINE = '_'; token GRAVE_ACCENT = '`'; token LEFT_CURLY_BRACKET = '{'; token VERTICAL_LINE = '|'; token RIGHT_CURLY_BRACKET = '}';