1/* 2 * Copyright (c) 2003-4 Kian Duffy <myob@users.sourceforge.net> 3 * Parts Copyright (C) 1998,99 Kazuho Okui and Takashi Murai. 4 * 5 * Distributed under the terms of the MIT License. 6 * 7 * Authors: 8 * Kian Duffy, myob@users.sourceforge.net 9 * Siarzhuk Zharski, zharik@gmx.li 10 */ 11 12 13#include <SupportDefs.h> 14 15#include "VTparse.h" 16 17 18// #pragma mark UTF8 coding ground table 19int gUTF8GroundTable[] = 20{ 21/* NUL SOH STX ETX */ 22CASE_IGNORE, 23CASE_IGNORE, 24CASE_IGNORE, 25CASE_IGNORE, 26/* EOT ENQ ACK BEL */ 27CASE_IGNORE, 28CASE_IGNORE, 29CASE_IGNORE, 30CASE_BELL, 31/* BS HT NL VT */ 32CASE_BS, 33CASE_TAB, 34CASE_LF, 35CASE_LF, /* CASE_UP*/ 36/* NP CR SO SI */ 37CASE_LF, /* CASE_IGNORE*/ 38CASE_CR, 39CASE_LS1, 40CASE_LS0, 41/* DLE DC1 DC2 DC3 */ 42CASE_IGNORE, 43CASE_IGNORE, 44CASE_IGNORE, 45CASE_IGNORE, 46/* DC4 NAK SYN ETB */ 47CASE_IGNORE, 48CASE_IGNORE, 49CASE_IGNORE, 50CASE_IGNORE, 51/* CAN EM SUB ESC */ 52CASE_IGNORE, 53CASE_IGNORE, 54CASE_IGNORE, 55CASE_ESC, 56/* FS GS RS US */ 57CASE_IGNORE, 58CASE_IGNORE, 59CASE_IGNORE, 60CASE_IGNORE, 61/* SP ! " # */ 62CASE_PRINT, 63CASE_PRINT, 64CASE_PRINT, 65CASE_PRINT, 66/* $ % & ' */ 67CASE_PRINT, 68CASE_PRINT, 69CASE_PRINT, 70CASE_PRINT, 71/* ( ) * + */ 72CASE_PRINT, 73CASE_PRINT, 74CASE_PRINT, 75CASE_PRINT, 76/* , - . / */ 77CASE_PRINT, 78CASE_PRINT, 79CASE_PRINT, 80CASE_PRINT, 81/* 0 1 2 3 */ 82CASE_PRINT, 83CASE_PRINT, 84CASE_PRINT, 85CASE_PRINT, 86/* 4 5 6 7 */ 87CASE_PRINT, 88CASE_PRINT, 89CASE_PRINT, 90CASE_PRINT, 91/* 8 9 : ; */ 92CASE_PRINT, 93CASE_PRINT, 94CASE_PRINT, 95CASE_PRINT, 96/* < = > ? */ 97CASE_PRINT, 98CASE_PRINT, 99CASE_PRINT, 100CASE_PRINT, 101/* @ A B C */ 102CASE_PRINT, 103CASE_PRINT, 104CASE_PRINT, 105CASE_PRINT, 106/* D E F G */ 107CASE_PRINT, 108CASE_PRINT, 109CASE_PRINT, 110CASE_PRINT, 111/* H I J K */ 112CASE_PRINT, 113CASE_PRINT, 114CASE_PRINT, 115CASE_PRINT, 116/* L M N O */ 117CASE_PRINT, 118CASE_PRINT, 119CASE_PRINT, 120CASE_PRINT, 121/* P Q R S */ 122CASE_PRINT, 123CASE_PRINT, 124CASE_PRINT, 125CASE_PRINT, 126/* T U V W */ 127CASE_PRINT, 128CASE_PRINT, 129CASE_PRINT, 130CASE_PRINT, 131/* X Y Z [ */ 132CASE_PRINT, 133CASE_PRINT, 134CASE_PRINT, 135CASE_PRINT, 136/* \ ] ^ _ */ 137CASE_PRINT, 138CASE_PRINT, 139CASE_PRINT, 140CASE_PRINT, 141/* ` a b c */ 142CASE_PRINT, 143CASE_PRINT, 144CASE_PRINT, 145CASE_PRINT, 146/* d e f g */ 147CASE_PRINT, 148CASE_PRINT, 149CASE_PRINT, 150CASE_PRINT, 151/* h i j k */ 152CASE_PRINT, 153CASE_PRINT, 154CASE_PRINT, 155CASE_PRINT, 156/* l m n o */ 157CASE_PRINT, 158CASE_PRINT, 159CASE_PRINT, 160CASE_PRINT, 161/* p q r s */ 162CASE_PRINT, 163CASE_PRINT, 164CASE_PRINT, 165CASE_PRINT, 166/* t u v w */ 167CASE_PRINT, 168CASE_PRINT, 169CASE_PRINT, 170CASE_PRINT, 171/* x y z { */ 172CASE_PRINT, 173CASE_PRINT, 174CASE_PRINT, 175CASE_PRINT, 176/* | } ~ DEL */ 177CASE_PRINT, 178CASE_PRINT, 179CASE_PRINT, 180CASE_IGNORE, 181/* 0x80 0x81 0x82 0x83 */ 182CASE_UTF8_INSTRING, 183CASE_UTF8_INSTRING, 184CASE_UTF8_INSTRING, 185CASE_UTF8_INSTRING, 186/* 0x84 0x85 0x86 0x87 */ 187CASE_UTF8_INSTRING, 188CASE_UTF8_INSTRING, 189CASE_UTF8_INSTRING, 190CASE_UTF8_INSTRING, 191/* 0x88 0x89 0x8a 0x8b */ 192CASE_UTF8_INSTRING, 193CASE_UTF8_INSTRING, 194CASE_UTF8_INSTRING, 195CASE_UTF8_INSTRING, 196/* 0x8c 0x8d 0x8e 0x8f */ 197CASE_UTF8_INSTRING, 198CASE_UTF8_INSTRING, 199CASE_UTF8_INSTRING, 200CASE_UTF8_INSTRING, 201/* 0x90 0x91 0x92 0x93 */ 202CASE_UTF8_INSTRING, 203CASE_UTF8_INSTRING, 204CASE_UTF8_INSTRING, 205CASE_UTF8_INSTRING, 206/* 0x94 0x95 0x96 0x97 */ 207CASE_UTF8_INSTRING, 208CASE_UTF8_INSTRING, 209CASE_UTF8_INSTRING, 210CASE_UTF8_INSTRING, 211/* 0x99 0x99 0x9a 0x9b */ 212CASE_UTF8_INSTRING, 213CASE_UTF8_INSTRING, 214CASE_UTF8_INSTRING, 215CASE_UTF8_INSTRING, 216/* 0x9c 0x9d 0x9e 0x9f */ 217CASE_UTF8_INSTRING, 218CASE_UTF8_INSTRING, 219CASE_UTF8_INSTRING, 220CASE_UTF8_INSTRING, 221/* 0xa0 0xa1 0xa2 0xa3 */ 222CASE_UTF8_INSTRING, 223CASE_UTF8_INSTRING, 224CASE_UTF8_INSTRING, 225CASE_UTF8_INSTRING, 226/* 0xa4 0xa5 0xa6 0xa7 */ 227CASE_UTF8_INSTRING, 228CASE_UTF8_INSTRING, 229CASE_UTF8_INSTRING, 230CASE_UTF8_INSTRING, 231/* 0xa8 0xa9 0xaa 0xab */ 232CASE_UTF8_INSTRING, 233CASE_UTF8_INSTRING, 234CASE_UTF8_INSTRING, 235CASE_UTF8_INSTRING, 236/* 0xac 0xad 0xae 0xaf */ 237CASE_UTF8_INSTRING, 238CASE_UTF8_INSTRING, 239CASE_UTF8_INSTRING, 240CASE_UTF8_INSTRING, 241/* 0xb0 0xb1 0xb2 0xb3 */ 242CASE_UTF8_INSTRING, 243CASE_UTF8_INSTRING, 244CASE_UTF8_INSTRING, 245CASE_UTF8_INSTRING, 246/* 0xb4 0xb5 0xb6 0xb7 */ 247CASE_UTF8_INSTRING, 248CASE_UTF8_INSTRING, 249CASE_UTF8_INSTRING, 250CASE_UTF8_INSTRING, 251/* 0xb8 0xb9 0xba 0xbb */ 252CASE_UTF8_INSTRING, 253CASE_UTF8_INSTRING, 254CASE_UTF8_INSTRING, 255CASE_UTF8_INSTRING, 256/* 0xbc 0xbd 0xbe 0xbf */ 257CASE_UTF8_INSTRING, 258CASE_UTF8_INSTRING, 259CASE_UTF8_INSTRING, 260CASE_UTF8_INSTRING, 261/* 0xc0 0xc1 0xc2 0xc3 */ 262CASE_UTF8_2BYTE, 263CASE_UTF8_2BYTE, 264CASE_UTF8_2BYTE, 265CASE_UTF8_2BYTE, 266/* 0xc4 0xc5 0xc6 0xc7 */ 267CASE_UTF8_2BYTE, 268CASE_UTF8_2BYTE, 269CASE_UTF8_2BYTE, 270CASE_UTF8_2BYTE, 271/* 0xc8 0xc9 0xca 0xcb */ 272CASE_UTF8_2BYTE, 273CASE_UTF8_2BYTE, 274CASE_UTF8_2BYTE, 275CASE_UTF8_2BYTE, 276/* 0xcc 0xcd 0xce 0xcf */ 277CASE_UTF8_2BYTE, 278CASE_UTF8_2BYTE, 279CASE_UTF8_2BYTE, 280CASE_UTF8_2BYTE, 281/* 0xd0 0xd1 0xd2 0xd3 */ 282CASE_UTF8_2BYTE, 283CASE_UTF8_2BYTE, 284CASE_UTF8_2BYTE, 285CASE_UTF8_2BYTE, 286/* 0xd4 0xd5 0xd6 0xd7 */ 287CASE_UTF8_2BYTE, 288CASE_UTF8_2BYTE, 289CASE_UTF8_2BYTE, 290CASE_UTF8_2BYTE, 291/* 0xd8 0xd9 0xda 0xdb */ 292CASE_UTF8_2BYTE, 293CASE_UTF8_2BYTE, 294CASE_UTF8_2BYTE, 295CASE_UTF8_2BYTE, 296/* 0xdc 0xdd 0xde 0xdf */ 297CASE_UTF8_2BYTE, 298CASE_UTF8_2BYTE, 299CASE_UTF8_2BYTE, 300CASE_UTF8_2BYTE, 301/* 0xe0 0xe1 0xe2 0xe3 */ 302CASE_UTF8_3BYTE, 303CASE_UTF8_3BYTE, 304CASE_UTF8_3BYTE, 305CASE_UTF8_3BYTE, 306/* 0xe4 0xe5 0xe6 0xe7 */ 307CASE_UTF8_3BYTE, 308CASE_UTF8_3BYTE, 309CASE_UTF8_3BYTE, 310CASE_UTF8_3BYTE, 311/* 0xe8 0xe9 0xea 0xeb */ 312CASE_UTF8_3BYTE, 313CASE_UTF8_3BYTE, 314CASE_UTF8_3BYTE, 315CASE_UTF8_3BYTE, 316/* 0xec 0xed 0xee 0xef */ 317CASE_UTF8_3BYTE, 318CASE_UTF8_3BYTE, 319CASE_UTF8_3BYTE, 320CASE_UTF8_3BYTE, 321/* 0xf0 0xf1 0xf2 0xf3 */ 322CASE_UTF8_3BYTE, 323CASE_UTF8_3BYTE, 324CASE_UTF8_3BYTE, 325CASE_UTF8_3BYTE, 326/* 0xf4 0xf5 0xf6 0xf7 */ 327CASE_UTF8_3BYTE, 328CASE_UTF8_3BYTE, 329CASE_UTF8_3BYTE, 330CASE_UTF8_3BYTE, 331/* 0xf8 0xf9 0xfa 0xfb */ 332CASE_UTF8_3BYTE, 333CASE_UTF8_3BYTE, 334CASE_UTF8_3BYTE, 335CASE_UTF8_3BYTE, 336/* 0xfc 0xfd 0xfe 0xff */ 337CASE_UTF8_3BYTE, 338CASE_UTF8_3BYTE, 339CASE_UTF8_3BYTE, 340CASE_UTF8_3BYTE, 341}; 342 343// #pragma mark ISO8859 table 344int gISO8859GroundTable[] = 345{ 346/* NUL SOH STX ETX */ 347CASE_IGNORE, 348CASE_IGNORE, 349CASE_IGNORE, 350CASE_IGNORE, 351/* EOT ENQ ACK BEL */ 352CASE_IGNORE, 353CASE_IGNORE, 354CASE_IGNORE, 355CASE_BELL, 356/* BS HT NL VT */ 357CASE_BS, 358CASE_TAB, 359CASE_LF, 360CASE_LF, /*CASE_UP,*/ 361/* NP CR SO SI */ 362CASE_LF, /*CASE_IGNORE,*/ 363CASE_CR, 364CASE_LS1, 365CASE_LS0, 366/* DLE DC1 DC2 DC3 */ 367CASE_IGNORE, 368CASE_IGNORE, 369CASE_IGNORE, 370CASE_IGNORE, 371/* DC4 NAK SYN ETB */ 372CASE_IGNORE, 373CASE_IGNORE, 374CASE_IGNORE, 375CASE_IGNORE, 376/* CAN EM SUB ESC */ 377CASE_IGNORE, 378CASE_IGNORE, 379CASE_IGNORE, 380CASE_ESC, 381/* FS GS RS US */ 382CASE_IGNORE, 383CASE_IGNORE, 384CASE_IGNORE, 385CASE_IGNORE, 386/* SP ! " # */ 387CASE_PRINT, 388CASE_PRINT, 389CASE_PRINT, 390CASE_PRINT, 391/* $ % & ' */ 392CASE_PRINT, 393CASE_PRINT, 394CASE_PRINT, 395CASE_PRINT, 396/* ( ) * + */ 397CASE_PRINT, 398CASE_PRINT, 399CASE_PRINT, 400CASE_PRINT, 401/* , - . / */ 402CASE_PRINT, 403CASE_PRINT, 404CASE_PRINT, 405CASE_PRINT, 406/* 0 1 2 3 */ 407CASE_PRINT, 408CASE_PRINT, 409CASE_PRINT, 410CASE_PRINT, 411/* 4 5 6 7 */ 412CASE_PRINT, 413CASE_PRINT, 414CASE_PRINT, 415CASE_PRINT, 416/* 8 9 : ; */ 417CASE_PRINT, 418CASE_PRINT, 419CASE_PRINT, 420CASE_PRINT, 421/* < = > ? */ 422CASE_PRINT, 423CASE_PRINT, 424CASE_PRINT, 425CASE_PRINT, 426/* @ A B C */ 427CASE_PRINT, 428CASE_PRINT, 429CASE_PRINT, 430CASE_PRINT, 431/* D E F G */ 432CASE_PRINT, 433CASE_PRINT, 434CASE_PRINT, 435CASE_PRINT, 436/* H I J K */ 437CASE_PRINT, 438CASE_PRINT, 439CASE_PRINT, 440CASE_PRINT, 441/* L M N O */ 442CASE_PRINT, 443CASE_PRINT, 444CASE_PRINT, 445CASE_PRINT, 446/* P Q R S */ 447CASE_PRINT, 448CASE_PRINT, 449CASE_PRINT, 450CASE_PRINT, 451/* T U V W */ 452CASE_PRINT, 453CASE_PRINT, 454CASE_PRINT, 455CASE_PRINT, 456/* X Y Z [ */ 457CASE_PRINT, 458CASE_PRINT, 459CASE_PRINT, 460CASE_PRINT, 461/* \ ] ^ _ */ 462CASE_PRINT, 463CASE_PRINT, 464CASE_PRINT, 465CASE_PRINT, 466/* ` a b c */ 467CASE_PRINT, 468CASE_PRINT, 469CASE_PRINT, 470CASE_PRINT, 471/* d e f g */ 472CASE_PRINT, 473CASE_PRINT, 474CASE_PRINT, 475CASE_PRINT, 476/* h i j k */ 477CASE_PRINT, 478CASE_PRINT, 479CASE_PRINT, 480CASE_PRINT, 481/* l m n o */ 482CASE_PRINT, 483CASE_PRINT, 484CASE_PRINT, 485CASE_PRINT, 486/* p q r s */ 487CASE_PRINT, 488CASE_PRINT, 489CASE_PRINT, 490CASE_PRINT, 491/* t u v w */ 492CASE_PRINT, 493CASE_PRINT, 494CASE_PRINT, 495CASE_PRINT, 496/* x y z { */ 497CASE_PRINT, 498CASE_PRINT, 499CASE_PRINT, 500CASE_PRINT, 501/* | } ~ DEL */ 502CASE_PRINT, 503CASE_PRINT, 504CASE_PRINT, 505CASE_PRINT, 506/* 0x80 0x81 0x82 0x83 */ 507CASE_IGNORE, 508CASE_IGNORE, 509CASE_IGNORE, 510CASE_IGNORE, 511/* 0x84 0x85 0x86 0x87 */ 512CASE_IGNORE, 513CASE_IGNORE, 514CASE_IGNORE, 515CASE_IGNORE, 516/* 0x88 0x89 0x8a 0x8b */ 517CASE_IGNORE, 518CASE_IGNORE, 519CASE_IGNORE, 520CASE_IGNORE, 521/* 0x8c 0x8d 0x8e 0x8f */ 522CASE_IGNORE, 523CASE_IGNORE, 524CASE_SS2, 525CASE_SS3, 526/* 0x90 0x91 0x92 0x93 */ 527CASE_IGNORE, 528CASE_IGNORE, 529CASE_IGNORE, 530CASE_IGNORE, 531/* 0x94 0x95 0x96 0x97 */ 532CASE_IGNORE, 533CASE_IGNORE, 534CASE_IGNORE, 535CASE_IGNORE, 536/* 0x99 0x99 0x9a 0x9b */ 537CASE_IGNORE, 538CASE_IGNORE, 539CASE_IGNORE, 540CASE_CSI_STATE, 541/* 0x9c 0x9d 0x9e 0x9f */ 542CASE_IGNORE, 543CASE_IGNORE, 544CASE_IGNORE, 545CASE_IGNORE, 546/* nobreakspace exclamdown cent sterling */ 547CASE_PRINT_GR, 548CASE_PRINT_GR, 549CASE_PRINT_GR, 550CASE_PRINT_GR, 551/* currency yen brokenbar section */ 552CASE_PRINT_GR, 553CASE_PRINT_GR, 554CASE_PRINT_GR, 555CASE_PRINT_GR, 556/* diaeresis copyright ordfeminine guillemotleft */ 557CASE_PRINT_GR, 558CASE_PRINT_GR, 559CASE_PRINT_GR, 560CASE_PRINT_GR, 561/* notsign hyphen registered macron */ 562CASE_PRINT_GR, 563CASE_PRINT_GR, 564CASE_PRINT_GR, 565CASE_PRINT_GR, 566/* degree plusminus twosuperior threesuperior */ 567CASE_PRINT_GR, 568CASE_PRINT_GR, 569CASE_PRINT_GR, 570CASE_PRINT_GR, 571/* acute mu paragraph periodcentered */ 572CASE_PRINT_GR, 573CASE_PRINT_GR, 574CASE_PRINT_GR, 575CASE_PRINT_GR, 576/* cedilla onesuperior masculine guillemotright */ 577CASE_PRINT_GR, 578CASE_PRINT_GR, 579CASE_PRINT_GR, 580CASE_PRINT_GR, 581/* onequarter onehalf threequarters questiondown */ 582CASE_PRINT_GR, 583CASE_PRINT_GR, 584CASE_PRINT_GR, 585CASE_PRINT_GR, 586/* Agrave Aacute Acircumflex Atilde */ 587CASE_PRINT_GR, 588CASE_PRINT_GR, 589CASE_PRINT_GR, 590CASE_PRINT_GR, 591/* Adiaeresis Aring AE Ccedilla */ 592CASE_PRINT_GR, 593CASE_PRINT_GR, 594CASE_PRINT_GR, 595CASE_PRINT_GR, 596/* Egrave Eacute Ecircumflex Ediaeresis */ 597CASE_PRINT_GR, 598CASE_PRINT_GR, 599CASE_PRINT_GR, 600CASE_PRINT_GR, 601/* Igrave Iacute Icircumflex Idiaeresis */ 602CASE_PRINT_GR, 603CASE_PRINT_GR, 604CASE_PRINT_GR, 605CASE_PRINT_GR, 606/* Eth Ntilde Ograve Oacute */ 607CASE_PRINT_GR, 608CASE_PRINT_GR, 609CASE_PRINT_GR, 610CASE_PRINT_GR, 611/* Ocircumflex Otilde Odiaeresis multiply */ 612CASE_PRINT_GR, 613CASE_PRINT_GR, 614CASE_PRINT_GR, 615CASE_PRINT_GR, 616/* Ooblique Ugrave Uacute Ucircumflex */ 617CASE_PRINT_GR, 618CASE_PRINT_GR, 619CASE_PRINT_GR, 620CASE_PRINT_GR, 621/* Udiaeresis Yacute Thorn ssharp */ 622CASE_PRINT_GR, 623CASE_PRINT_GR, 624CASE_PRINT_GR, 625CASE_PRINT_GR, 626/* agrave aacute acircumflex atilde */ 627CASE_PRINT_GR, 628CASE_PRINT_GR, 629CASE_PRINT_GR, 630CASE_PRINT_GR, 631/* adiaeresis aring ae ccedilla */ 632CASE_PRINT_GR, 633CASE_PRINT_GR, 634CASE_PRINT_GR, 635CASE_PRINT_GR, 636/* egrave eacute ecircumflex ediaeresis */ 637CASE_PRINT_GR, 638CASE_PRINT_GR, 639CASE_PRINT_GR, 640CASE_PRINT_GR, 641/* igrave iacute icircumflex idiaeresis */ 642CASE_PRINT_GR, 643CASE_PRINT_GR, 644CASE_PRINT_GR, 645CASE_PRINT_GR, 646/* eth ntilde ograve oacute */ 647CASE_PRINT_GR, 648CASE_PRINT_GR, 649CASE_PRINT_GR, 650CASE_PRINT_GR, 651/* ocircumflex otilde odiaeresis division */ 652CASE_PRINT_GR, 653CASE_PRINT_GR, 654CASE_PRINT_GR, 655CASE_PRINT_GR, 656/* oslash ugrave uacute ucircumflex */ 657CASE_PRINT_GR, 658CASE_PRINT_GR, 659CASE_PRINT_GR, 660CASE_PRINT_GR, 661/* udiaeresis yacute thorn ydiaeresis */ 662CASE_PRINT_GR, 663CASE_PRINT_GR, 664CASE_PRINT_GR, 665CASE_PRINT_GR, 666}; 667 668// #pragma mark WinCP table (ISO8859 + C1) 669// This one defines both C1 control and GR characters 670// as CASE_PRINT_GR to let process set of encodings 671// using this areas: cp1252, cp1251, koi-8r, cp866, gb18030 672int gWinCPGroundTable[] = 673{ 674/* NUL SOH STX ETX */ 675CASE_IGNORE, 676CASE_IGNORE, 677CASE_IGNORE, 678CASE_IGNORE, 679/* EOT ENQ ACK BEL */ 680CASE_IGNORE, 681CASE_IGNORE, 682CASE_IGNORE, 683CASE_BELL, 684/* BS HT NL VT */ 685CASE_BS, 686CASE_TAB, 687CASE_LF, 688CASE_LF, /*CASE_UP,*/ 689/* NP CR SO SI */ 690CASE_LF, /*CASE_IGNORE,*/ 691CASE_CR, 692CASE_LS1, 693CASE_LS0, 694/* DLE DC1 DC2 DC3 */ 695CASE_IGNORE, 696CASE_IGNORE, 697CASE_IGNORE, 698CASE_IGNORE, 699/* DC4 NAK SYN ETB */ 700CASE_IGNORE, 701CASE_IGNORE, 702CASE_IGNORE, 703CASE_IGNORE, 704/* CAN EM SUB ESC */ 705CASE_IGNORE, 706CASE_IGNORE, 707CASE_IGNORE, 708CASE_ESC, 709/* FS GS RS US */ 710CASE_IGNORE, 711CASE_IGNORE, 712CASE_IGNORE, 713CASE_IGNORE, 714/* SP ! " # */ 715CASE_PRINT, 716CASE_PRINT, 717CASE_PRINT, 718CASE_PRINT, 719/* $ % & ' */ 720CASE_PRINT, 721CASE_PRINT, 722CASE_PRINT, 723CASE_PRINT, 724/* ( ) * + */ 725CASE_PRINT, 726CASE_PRINT, 727CASE_PRINT, 728CASE_PRINT, 729/* , - . / */ 730CASE_PRINT, 731CASE_PRINT, 732CASE_PRINT, 733CASE_PRINT, 734/* 0 1 2 3 */ 735CASE_PRINT, 736CASE_PRINT, 737CASE_PRINT, 738CASE_PRINT, 739/* 4 5 6 7 */ 740CASE_PRINT, 741CASE_PRINT, 742CASE_PRINT, 743CASE_PRINT, 744/* 8 9 : ; */ 745CASE_PRINT, 746CASE_PRINT, 747CASE_PRINT, 748CASE_PRINT, 749/* < = > ? */ 750CASE_PRINT, 751CASE_PRINT, 752CASE_PRINT, 753CASE_PRINT, 754/* @ A B C */ 755CASE_PRINT, 756CASE_PRINT, 757CASE_PRINT, 758CASE_PRINT, 759/* D E F G */ 760CASE_PRINT, 761CASE_PRINT, 762CASE_PRINT, 763CASE_PRINT, 764/* H I J K */ 765CASE_PRINT, 766CASE_PRINT, 767CASE_PRINT, 768CASE_PRINT, 769/* L M N O */ 770CASE_PRINT, 771CASE_PRINT, 772CASE_PRINT, 773CASE_PRINT, 774/* P Q R S */ 775CASE_PRINT, 776CASE_PRINT, 777CASE_PRINT, 778CASE_PRINT, 779/* T U V W */ 780CASE_PRINT, 781CASE_PRINT, 782CASE_PRINT, 783CASE_PRINT, 784/* X Y Z [ */ 785CASE_PRINT, 786CASE_PRINT, 787CASE_PRINT, 788CASE_PRINT, 789/* \ ] ^ _ */ 790CASE_PRINT, 791CASE_PRINT, 792CASE_PRINT, 793CASE_PRINT, 794/* ` a b c */ 795CASE_PRINT, 796CASE_PRINT, 797CASE_PRINT, 798CASE_PRINT, 799/* d e f g */ 800CASE_PRINT, 801CASE_PRINT, 802CASE_PRINT, 803CASE_PRINT, 804/* h i j k */ 805CASE_PRINT, 806CASE_PRINT, 807CASE_PRINT, 808CASE_PRINT, 809/* l m n o */ 810CASE_PRINT, 811CASE_PRINT, 812CASE_PRINT, 813CASE_PRINT, 814/* p q r s */ 815CASE_PRINT, 816CASE_PRINT, 817CASE_PRINT, 818CASE_PRINT, 819/* t u v w */ 820CASE_PRINT, 821CASE_PRINT, 822CASE_PRINT, 823CASE_PRINT, 824/* x y z { */ 825CASE_PRINT, 826CASE_PRINT, 827CASE_PRINT, 828CASE_PRINT, 829/* | } ~ DEL */ 830CASE_PRINT, 831CASE_PRINT, 832CASE_PRINT, 833CASE_PRINT, 834/* 0x80 0x81 0x82 0x83 */ 835CASE_PRINT_GR, 836CASE_PRINT_GR, 837CASE_PRINT_GR, 838CASE_PRINT_GR, 839/* 0x84 0x85 0x86 0x87 */ 840CASE_PRINT_GR, 841CASE_PRINT_GR, 842CASE_PRINT_GR, 843CASE_PRINT_GR, 844/* 0x88 0x89 0x8a 0x8b */ 845CASE_PRINT_GR, 846CASE_PRINT_GR, 847CASE_PRINT_GR, 848CASE_PRINT_GR, 849/* 0x8c 0x8d 0x8e 0x8f */ 850CASE_PRINT_GR, 851CASE_PRINT_GR, 852CASE_PRINT_GR, 853CASE_PRINT_GR, 854/* 0x90 0x91 0x92 0x93 */ 855CASE_PRINT_GR, 856CASE_PRINT_GR, 857CASE_PRINT_GR, 858CASE_PRINT_GR, 859/* 0x94 0x95 0x96 0x97 */ 860CASE_PRINT_GR, 861CASE_PRINT_GR, 862CASE_PRINT_GR, 863CASE_PRINT_GR, 864/* 0x99 0x99 0x9a 0x9b */ 865CASE_PRINT_GR, 866CASE_PRINT_GR, 867CASE_PRINT_GR, 868CASE_PRINT_GR, 869/* 0x9c 0x9d 0x9e 0x9f */ 870CASE_PRINT_GR, 871CASE_PRINT_GR, 872CASE_PRINT_GR, 873CASE_PRINT_GR, 874/* nobreakspace exclamdown cent sterling */ 875CASE_PRINT_GR, 876CASE_PRINT_GR, 877CASE_PRINT_GR, 878CASE_PRINT_GR, 879/* currency yen brokenbar section */ 880CASE_PRINT_GR, 881CASE_PRINT_GR, 882CASE_PRINT_GR, 883CASE_PRINT_GR, 884/* diaeresis copyright ordfeminine guillemotleft */ 885CASE_PRINT_GR, 886CASE_PRINT_GR, 887CASE_PRINT_GR, 888CASE_PRINT_GR, 889/* notsign hyphen registered macron */ 890CASE_PRINT_GR, 891CASE_PRINT_GR, 892CASE_PRINT_GR, 893CASE_PRINT_GR, 894/* degree plusminus twosuperior threesuperior */ 895CASE_PRINT_GR, 896CASE_PRINT_GR, 897CASE_PRINT_GR, 898CASE_PRINT_GR, 899/* acute mu paragraph periodcentered */ 900CASE_PRINT_GR, 901CASE_PRINT_GR, 902CASE_PRINT_GR, 903CASE_PRINT_GR, 904/* cedilla onesuperior masculine guillemotright */ 905CASE_PRINT_GR, 906CASE_PRINT_GR, 907CASE_PRINT_GR, 908CASE_PRINT_GR, 909/* onequarter onehalf threequarters questiondown */ 910CASE_PRINT_GR, 911CASE_PRINT_GR, 912CASE_PRINT_GR, 913CASE_PRINT_GR, 914/* Agrave Aacute Acircumflex Atilde */ 915CASE_PRINT_GR, 916CASE_PRINT_GR, 917CASE_PRINT_GR, 918CASE_PRINT_GR, 919/* Adiaeresis Aring AE Ccedilla */ 920CASE_PRINT_GR, 921CASE_PRINT_GR, 922CASE_PRINT_GR, 923CASE_PRINT_GR, 924/* Egrave Eacute Ecircumflex Ediaeresis */ 925CASE_PRINT_GR, 926CASE_PRINT_GR, 927CASE_PRINT_GR, 928CASE_PRINT_GR, 929/* Igrave Iacute Icircumflex Idiaeresis */ 930CASE_PRINT_GR, 931CASE_PRINT_GR, 932CASE_PRINT_GR, 933CASE_PRINT_GR, 934/* Eth Ntilde Ograve Oacute */ 935CASE_PRINT_GR, 936CASE_PRINT_GR, 937CASE_PRINT_GR, 938CASE_PRINT_GR, 939/* Ocircumflex Otilde Odiaeresis multiply */ 940CASE_PRINT_GR, 941CASE_PRINT_GR, 942CASE_PRINT_GR, 943CASE_PRINT_GR, 944/* Ooblique Ugrave Uacute Ucircumflex */ 945CASE_PRINT_GR, 946CASE_PRINT_GR, 947CASE_PRINT_GR, 948CASE_PRINT_GR, 949/* Udiaeresis Yacute Thorn ssharp */ 950CASE_PRINT_GR, 951CASE_PRINT_GR, 952CASE_PRINT_GR, 953CASE_PRINT_GR, 954/* agrave aacute acircumflex atilde */ 955CASE_PRINT_GR, 956CASE_PRINT_GR, 957CASE_PRINT_GR, 958CASE_PRINT_GR, 959/* adiaeresis aring ae ccedilla */ 960CASE_PRINT_GR, 961CASE_PRINT_GR, 962CASE_PRINT_GR, 963CASE_PRINT_GR, 964/* egrave eacute ecircumflex ediaeresis */ 965CASE_PRINT_GR, 966CASE_PRINT_GR, 967CASE_PRINT_GR, 968CASE_PRINT_GR, 969/* igrave iacute icircumflex idiaeresis */ 970CASE_PRINT_GR, 971CASE_PRINT_GR, 972CASE_PRINT_GR, 973CASE_PRINT_GR, 974/* eth ntilde ograve oacute */ 975CASE_PRINT_GR, 976CASE_PRINT_GR, 977CASE_PRINT_GR, 978CASE_PRINT_GR, 979/* ocircumflex otilde odiaeresis division */ 980CASE_PRINT_GR, 981CASE_PRINT_GR, 982CASE_PRINT_GR, 983CASE_PRINT_GR, 984/* oslash ugrave uacute ucircumflex */ 985CASE_PRINT_GR, 986CASE_PRINT_GR, 987CASE_PRINT_GR, 988CASE_PRINT_GR, 989/* udiaeresis yacute thorn ydiaeresis */ 990CASE_PRINT_GR, 991CASE_PRINT_GR, 992CASE_PRINT_GR, 993CASE_PRINT_GR, 994}; 995 996// #pragma mark ESC [ - CSI table 997int gCsiTable[] = 998{ 999/* NUL SOH STX ETX */ 1000CASE_IGNORE, 1001CASE_IGNORE, 1002CASE_IGNORE, 1003CASE_IGNORE, 1004/* EOT ENQ ACK BEL */ 1005CASE_IGNORE, 1006CASE_IGNORE, 1007CASE_IGNORE, 1008CASE_BELL, 1009/* BS HT NL VT */ 1010CASE_BS, 1011CASE_TAB, 1012CASE_ESC_IGNORE, 1013CASE_ESC_IGNORE, 1014/* NP CR SO SI */ 1015CASE_ESC_IGNORE, 1016CASE_CR, 1017CASE_LS1, 1018CASE_LS0, 1019/* DLE DC1 DC2 DC3 */ 1020CASE_IGNORE, 1021CASE_IGNORE, 1022CASE_IGNORE, 1023CASE_IGNORE, 1024/* DC4 NAK SYN ETB */ 1025CASE_IGNORE, 1026CASE_IGNORE, 1027CASE_IGNORE, 1028CASE_IGNORE, 1029/* CAN EM SUB ESC */ 1030CASE_IGNORE, 1031CASE_IGNORE, 1032CASE_IGNORE, 1033CASE_ESC, 1034/* FS GS RS US */ 1035CASE_IGNORE, 1036CASE_IGNORE, 1037CASE_IGNORE, 1038CASE_IGNORE, 1039/* SP ! " # */ 1040CASE_CSI_SP, 1041CASE_ESC_IGNORE, 1042CASE_ESC_IGNORE, 1043CASE_ESC_IGNORE, 1044/* $ % & ' */ 1045CASE_ESC_IGNORE, 1046CASE_ESC_IGNORE, 1047CASE_ESC_IGNORE, 1048CASE_ESC_IGNORE, 1049/* ( ) * + */ 1050CASE_ESC_IGNORE, 1051CASE_ESC_IGNORE, 1052CASE_ESC_IGNORE, 1053CASE_ESC_IGNORE, 1054/* , - . / */ 1055CASE_ESC_IGNORE, 1056CASE_ESC_IGNORE, 1057CASE_ESC_IGNORE, 1058CASE_ESC_IGNORE, 1059/* 0 1 2 3 */ 1060CASE_ESC_DIGIT, 1061CASE_ESC_DIGIT, 1062CASE_ESC_DIGIT, 1063CASE_ESC_DIGIT, 1064/* 4 5 6 7 */ 1065CASE_ESC_DIGIT, 1066CASE_ESC_DIGIT, 1067CASE_ESC_DIGIT, 1068CASE_ESC_DIGIT, 1069/* 8 9 : ; */ 1070CASE_ESC_DIGIT, 1071CASE_ESC_DIGIT, 1072CASE_ESC_SEMI, 1073CASE_ESC_SEMI, 1074/* < = > ? */ 1075CASE_IGNORE, 1076CASE_IGNORE, 1077CASE_IGNORE, 1078CASE_DEC_STATE, 1079/* @ A B C */ 1080CASE_ICH, 1081CASE_CUU, 1082CASE_CUD, 1083CASE_CUF, 1084/* D E F G */ 1085CASE_CUB, 1086CASE_CNL, 1087CASE_CPL, 1088CASE_HPA, 1089/* H I J K */ 1090CASE_CUP, 1091CASE_CFT, 1092CASE_ED, 1093CASE_EL, 1094/* L M N O */ 1095CASE_IL, 1096CASE_DL, 1097CASE_GROUND_STATE, 1098CASE_GROUND_STATE, 1099/* P Q R S */ 1100CASE_DCH, 1101CASE_GROUND_STATE, 1102CASE_GROUND_STATE, 1103CASE_SU, 1104/* T U V W */ 1105CASE_SD, 1106CASE_GROUND_STATE, 1107CASE_GROUND_STATE, 1108CASE_GROUND_STATE, 1109/* X Y Z [ */ 1110CASE_ECH, 1111CASE_GROUND_STATE, 1112CASE_CBT, 1113CASE_GROUND_STATE, 1114/* \ ] ^ _ */ 1115CASE_GROUND_STATE, 1116CASE_GROUND_STATE, 1117CASE_GROUND_STATE, 1118CASE_GROUND_STATE, 1119/* ` a b c */ 1120CASE_GROUND_STATE, 1121CASE_GROUND_STATE, 1122CASE_REP, 1123CASE_DA1, 1124/* d e f g */ 1125CASE_VPA, 1126CASE_GROUND_STATE, 1127CASE_CUP, 1128CASE_TBC, 1129/* h i j k */ 1130CASE_SET, 1131CASE_GROUND_STATE, 1132CASE_GROUND_STATE, 1133CASE_GROUND_STATE, 1134/* l m n o */ 1135CASE_RST, 1136CASE_SGR, 1137CASE_CPR, 1138CASE_GROUND_STATE, 1139/* p q r s */ 1140CASE_GROUND_STATE, 1141CASE_DECSCUSR_ETC, 1142CASE_DECSTBM, 1143CASE_GROUND_STATE, 1144/* t u v w */ 1145CASE_GROUND_STATE, 1146CASE_GROUND_STATE, 1147CASE_GROUND_STATE, 1148CASE_GROUND_STATE, 1149/* x y z { */ 1150CASE_DECREQTPARM, 1151CASE_GROUND_STATE, 1152CASE_GROUND_STATE, 1153CASE_GROUND_STATE, 1154/* | } ~ DEL */ 1155CASE_GROUND_STATE, 1156CASE_GROUND_STATE, 1157CASE_GROUND_STATE, 1158CASE_GROUND_STATE, 1159/* 0x80 0x81 0x82 0x83 */ 1160CASE_IGNORE, 1161CASE_IGNORE, 1162CASE_IGNORE, 1163CASE_IGNORE, 1164/* 0x84 0x85 0x86 0x87 */ 1165CASE_IGNORE, 1166CASE_IGNORE, 1167CASE_IGNORE, 1168CASE_IGNORE, 1169/* 0x88 0x89 0x8a 0x8b */ 1170CASE_IGNORE, 1171CASE_IGNORE, 1172CASE_IGNORE, 1173CASE_IGNORE, 1174/* 0x8c 0x8d 0x8e 0x8f */ 1175CASE_IGNORE, 1176CASE_IGNORE, 1177CASE_IGNORE, 1178CASE_IGNORE, 1179/* 0x90 0x91 0x92 0x93 */ 1180CASE_IGNORE, 1181CASE_IGNORE, 1182CASE_IGNORE, 1183CASE_IGNORE, 1184/* 0x94 0x95 0x96 0x97 */ 1185CASE_IGNORE, 1186CASE_IGNORE, 1187CASE_IGNORE, 1188CASE_IGNORE, 1189/* 0x99 0x99 0x9a 0x9b */ 1190CASE_IGNORE, 1191CASE_IGNORE, 1192CASE_IGNORE, 1193CASE_IGNORE, 1194/* 0x9c 0x9d 0x9e 0x9f */ 1195CASE_IGNORE, 1196CASE_IGNORE, 1197CASE_IGNORE, 1198CASE_IGNORE, 1199/* nobreakspace exclamdown cent sterling */ 1200CASE_GROUND_STATE, 1201CASE_GROUND_STATE, 1202CASE_GROUND_STATE, 1203CASE_GROUND_STATE, 1204/* currency yen brokenbar section */ 1205CASE_GROUND_STATE, 1206CASE_GROUND_STATE, 1207CASE_GROUND_STATE, 1208CASE_GROUND_STATE, 1209/* diaeresis copyright ordfeminine guillemotleft */ 1210CASE_GROUND_STATE, 1211CASE_GROUND_STATE, 1212CASE_GROUND_STATE, 1213CASE_GROUND_STATE, 1214/* notsign hyphen registered macron */ 1215CASE_GROUND_STATE, 1216CASE_GROUND_STATE, 1217CASE_GROUND_STATE, 1218CASE_GROUND_STATE, 1219/* degree plusminus twosuperior threesuperior */ 1220CASE_GROUND_STATE, 1221CASE_GROUND_STATE, 1222CASE_GROUND_STATE, 1223CASE_GROUND_STATE, 1224/* acute mu paragraph periodcentered */ 1225CASE_GROUND_STATE, 1226CASE_GROUND_STATE, 1227CASE_GROUND_STATE, 1228CASE_GROUND_STATE, 1229/* cedilla onesuperior masculine guillemotright */ 1230CASE_GROUND_STATE, 1231CASE_GROUND_STATE, 1232CASE_GROUND_STATE, 1233CASE_GROUND_STATE, 1234/* onequarter onehalf threequarters questiondown */ 1235CASE_GROUND_STATE, 1236CASE_GROUND_STATE, 1237CASE_GROUND_STATE, 1238CASE_GROUND_STATE, 1239/* Agrave Aacute Acircumflex Atilde */ 1240CASE_GROUND_STATE, 1241CASE_GROUND_STATE, 1242CASE_GROUND_STATE, 1243CASE_GROUND_STATE, 1244/* Adiaeresis Aring AE Ccedilla */ 1245CASE_GROUND_STATE, 1246CASE_GROUND_STATE, 1247CASE_GROUND_STATE, 1248CASE_GROUND_STATE, 1249/* Egrave Eacute Ecircumflex Ediaeresis */ 1250CASE_GROUND_STATE, 1251CASE_GROUND_STATE, 1252CASE_GROUND_STATE, 1253CASE_GROUND_STATE, 1254/* Igrave Iacute Icircumflex Idiaeresis */ 1255CASE_GROUND_STATE, 1256CASE_GROUND_STATE, 1257CASE_GROUND_STATE, 1258CASE_GROUND_STATE, 1259/* Eth Ntilde Ograve Oacute */ 1260CASE_GROUND_STATE, 1261CASE_GROUND_STATE, 1262CASE_GROUND_STATE, 1263CASE_GROUND_STATE, 1264/* Ocircumflex Otilde Odiaeresis multiply */ 1265CASE_GROUND_STATE, 1266CASE_GROUND_STATE, 1267CASE_GROUND_STATE, 1268CASE_GROUND_STATE, 1269/* Ooblique Ugrave Uacute Ucircumflex */ 1270CASE_GROUND_STATE, 1271CASE_GROUND_STATE, 1272CASE_GROUND_STATE, 1273CASE_GROUND_STATE, 1274/* Udiaeresis Yacute Thorn ssharp */ 1275CASE_GROUND_STATE, 1276CASE_GROUND_STATE, 1277CASE_GROUND_STATE, 1278CASE_GROUND_STATE, 1279/* agrave aacute acircumflex atilde */ 1280CASE_GROUND_STATE, 1281CASE_GROUND_STATE, 1282CASE_GROUND_STATE, 1283CASE_GROUND_STATE, 1284/* adiaeresis aring ae ccedilla */ 1285CASE_GROUND_STATE, 1286CASE_GROUND_STATE, 1287CASE_GROUND_STATE, 1288CASE_GROUND_STATE, 1289/* egrave eacute ecircumflex ediaeresis */ 1290CASE_GROUND_STATE, 1291CASE_GROUND_STATE, 1292CASE_GROUND_STATE, 1293CASE_GROUND_STATE, 1294/* igrave iacute icircumflex idiaeresis */ 1295CASE_GROUND_STATE, 1296CASE_GROUND_STATE, 1297CASE_GROUND_STATE, 1298CASE_GROUND_STATE, 1299/* eth ntilde ograve oacute */ 1300CASE_GROUND_STATE, 1301CASE_GROUND_STATE, 1302CASE_GROUND_STATE, 1303CASE_GROUND_STATE, 1304/* ocircumflex otilde odiaeresis division */ 1305CASE_GROUND_STATE, 1306CASE_GROUND_STATE, 1307CASE_GROUND_STATE, 1308CASE_GROUND_STATE, 1309/* oslash ugrave uacute ucircumflex */ 1310CASE_GROUND_STATE, 1311CASE_GROUND_STATE, 1312CASE_GROUND_STATE, 1313CASE_GROUND_STATE, 1314/* udiaeresis yacute thorn ydiaeresis */ 1315CASE_GROUND_STATE, 1316CASE_GROUND_STATE, 1317CASE_GROUND_STATE, 1318CASE_GROUND_STATE, 1319}; 1320 1321// #pragma mark ESC [ ? - DEC table 1322int gDecTable[] = 1323{ 1324/* NUL SOH STX ETX */ 1325CASE_IGNORE, 1326CASE_IGNORE, 1327CASE_IGNORE, 1328CASE_IGNORE, 1329/* EOT ENQ ACK BEL */ 1330CASE_IGNORE, 1331CASE_IGNORE, 1332CASE_IGNORE, 1333CASE_BELL, 1334/* BS HT NL VT */ 1335CASE_BS, 1336CASE_TAB, 1337CASE_VMOT, 1338CASE_VMOT, 1339/* NP CR SO SI */ 1340CASE_VMOT, 1341CASE_CR, 1342CASE_LS1, 1343CASE_LS0, 1344/* DLE DC1 DC2 DC3 */ 1345CASE_IGNORE, 1346CASE_IGNORE, 1347CASE_IGNORE, 1348CASE_IGNORE, 1349/* DC4 NAK SYN ETB */ 1350CASE_IGNORE, 1351CASE_IGNORE, 1352CASE_IGNORE, 1353CASE_IGNORE, 1354/* CAN EM SUB ESC */ 1355CASE_IGNORE, 1356CASE_IGNORE, 1357CASE_IGNORE, 1358CASE_ESC, 1359/* FS GS RS US */ 1360CASE_IGNORE, 1361CASE_IGNORE, 1362CASE_IGNORE, 1363CASE_IGNORE, 1364/* SP ! " # */ 1365CASE_ESC_IGNORE, 1366CASE_ESC_IGNORE, 1367CASE_ESC_IGNORE, 1368CASE_ESC_IGNORE, 1369/* $ % & ' */ 1370CASE_ESC_IGNORE, 1371CASE_ESC_IGNORE, 1372CASE_ESC_IGNORE, 1373CASE_ESC_IGNORE, 1374/* ( ) * + */ 1375CASE_ESC_IGNORE, 1376CASE_ESC_IGNORE, 1377CASE_ESC_IGNORE, 1378CASE_ESC_IGNORE, 1379/* , - . / */ 1380CASE_ESC_IGNORE, 1381CASE_ESC_IGNORE, 1382CASE_ESC_IGNORE, 1383CASE_ESC_IGNORE, 1384/* 0 1 2 3 */ 1385CASE_ESC_DIGIT, 1386CASE_ESC_DIGIT, 1387CASE_ESC_DIGIT, 1388CASE_ESC_DIGIT, 1389/* 4 5 6 7 */ 1390CASE_ESC_DIGIT, 1391CASE_ESC_DIGIT, 1392CASE_ESC_DIGIT, 1393CASE_ESC_DIGIT, 1394/* 8 9 : ; */ 1395CASE_ESC_DIGIT, 1396CASE_ESC_DIGIT, 1397CASE_IGNORE, 1398CASE_ESC_SEMI, 1399/* < = > ? */ 1400CASE_GROUND_STATE, 1401CASE_GROUND_STATE, 1402CASE_GROUND_STATE, 1403CASE_GROUND_STATE, 1404/* @ A B C */ 1405CASE_GROUND_STATE, 1406CASE_GROUND_STATE, 1407CASE_GROUND_STATE, 1408CASE_GROUND_STATE, 1409/* D E F G */ 1410CASE_GROUND_STATE, 1411CASE_GROUND_STATE, 1412CASE_GROUND_STATE, 1413CASE_GROUND_STATE, 1414/* H I J K */ 1415CASE_GROUND_STATE, 1416CASE_GROUND_STATE, 1417CASE_GROUND_STATE, 1418CASE_GROUND_STATE, 1419/* L M N O */ 1420CASE_GROUND_STATE, 1421CASE_GROUND_STATE, 1422CASE_GROUND_STATE, 1423CASE_GROUND_STATE, 1424/* P Q R S */ 1425CASE_GROUND_STATE, 1426CASE_GROUND_STATE, 1427CASE_GROUND_STATE, 1428CASE_GROUND_STATE, 1429/* T U V W */ 1430CASE_GROUND_STATE, 1431CASE_GROUND_STATE, 1432CASE_GROUND_STATE, 1433CASE_GROUND_STATE, 1434/* X Y Z [ */ 1435CASE_GROUND_STATE, 1436CASE_GROUND_STATE, 1437CASE_GROUND_STATE, 1438CASE_GROUND_STATE, 1439/* \ ] ^ _ */ 1440CASE_GROUND_STATE, 1441CASE_GROUND_STATE, 1442CASE_GROUND_STATE, 1443CASE_GROUND_STATE, 1444/* ` a b c */ 1445CASE_GROUND_STATE, 1446CASE_GROUND_STATE, 1447CASE_GROUND_STATE, 1448CASE_GROUND_STATE, 1449/* d e f g */ 1450CASE_GROUND_STATE, 1451CASE_GROUND_STATE, 1452CASE_GROUND_STATE, 1453CASE_GROUND_STATE, 1454/* h i j k */ 1455CASE_DECSET, 1456CASE_GROUND_STATE, 1457CASE_GROUND_STATE, 1458CASE_GROUND_STATE, 1459/* l m n o */ 1460CASE_DECRST, 1461CASE_GROUND_STATE, 1462CASE_GROUND_STATE, 1463CASE_GROUND_STATE, 1464/* p q r s */ 1465CASE_GROUND_STATE, 1466CASE_GROUND_STATE, 1467CASE_GROUND_STATE, 1468CASE_GROUND_STATE, 1469/* t u v w */ 1470CASE_GROUND_STATE, 1471CASE_GROUND_STATE, 1472CASE_GROUND_STATE, 1473CASE_GROUND_STATE, 1474/* x y z { */ 1475CASE_GROUND_STATE, 1476CASE_GROUND_STATE, 1477CASE_GROUND_STATE, 1478CASE_GROUND_STATE, 1479/* | } ~ DEL */ 1480CASE_GROUND_STATE, 1481CASE_GROUND_STATE, 1482CASE_GROUND_STATE, 1483CASE_GROUND_STATE, 1484/* 0x80 0x81 0x82 0x83 */ 1485CASE_IGNORE, 1486CASE_IGNORE, 1487CASE_IGNORE, 1488CASE_IGNORE, 1489/* 0x84 0x85 0x86 0x87 */ 1490CASE_IGNORE, 1491CASE_IGNORE, 1492CASE_IGNORE, 1493CASE_IGNORE, 1494/* 0x88 0x89 0x8a 0x8b */ 1495CASE_IGNORE, 1496CASE_IGNORE, 1497CASE_IGNORE, 1498CASE_IGNORE, 1499/* 0x8c 0x8d 0x8e 0x8f */ 1500CASE_IGNORE, 1501CASE_IGNORE, 1502CASE_IGNORE, 1503CASE_IGNORE, 1504/* 0x90 0x91 0x92 0x93 */ 1505CASE_IGNORE, 1506CASE_IGNORE, 1507CASE_IGNORE, 1508CASE_IGNORE, 1509/* 0x94 0x95 0x96 0x97 */ 1510CASE_IGNORE, 1511CASE_IGNORE, 1512CASE_IGNORE, 1513CASE_IGNORE, 1514/* 0x99 0x99 0x9a 0x9b */ 1515CASE_IGNORE, 1516CASE_IGNORE, 1517CASE_IGNORE, 1518CASE_IGNORE, 1519/* 0x9c 0x9d 0x9e 0x9f */ 1520CASE_IGNORE, 1521CASE_IGNORE, 1522CASE_IGNORE, 1523CASE_IGNORE, 1524/* nobreakspace exclamdown cent sterling */ 1525CASE_GROUND_STATE, 1526CASE_GROUND_STATE, 1527CASE_GROUND_STATE, 1528CASE_GROUND_STATE, 1529/* currency yen brokenbar section */ 1530CASE_GROUND_STATE, 1531CASE_GROUND_STATE, 1532CASE_GROUND_STATE, 1533CASE_GROUND_STATE, 1534/* diaeresis copyright ordfeminine guillemotleft */ 1535CASE_GROUND_STATE, 1536CASE_GROUND_STATE, 1537CASE_GROUND_STATE, 1538CASE_GROUND_STATE, 1539/* notsign hyphen registered macron */ 1540CASE_GROUND_STATE, 1541CASE_GROUND_STATE, 1542CASE_GROUND_STATE, 1543CASE_GROUND_STATE, 1544/* degree plusminus twosuperior threesuperior */ 1545CASE_GROUND_STATE, 1546CASE_GROUND_STATE, 1547CASE_GROUND_STATE, 1548CASE_GROUND_STATE, 1549/* acute mu paragraph periodcentered */ 1550CASE_GROUND_STATE, 1551CASE_GROUND_STATE, 1552CASE_GROUND_STATE, 1553CASE_GROUND_STATE, 1554/* cedilla onesuperior masculine guillemotright */ 1555CASE_GROUND_STATE, 1556CASE_GROUND_STATE, 1557CASE_GROUND_STATE, 1558CASE_GROUND_STATE, 1559/* onequarter onehalf threequarters questiondown */ 1560CASE_GROUND_STATE, 1561CASE_GROUND_STATE, 1562CASE_GROUND_STATE, 1563CASE_GROUND_STATE, 1564/* Agrave Aacute Acircumflex Atilde */ 1565CASE_GROUND_STATE, 1566CASE_GROUND_STATE, 1567CASE_GROUND_STATE, 1568CASE_GROUND_STATE, 1569/* Adiaeresis Aring AE Ccedilla */ 1570CASE_GROUND_STATE, 1571CASE_GROUND_STATE, 1572CASE_GROUND_STATE, 1573CASE_GROUND_STATE, 1574/* Egrave Eacute Ecircumflex Ediaeresis */ 1575CASE_GROUND_STATE, 1576CASE_GROUND_STATE, 1577CASE_GROUND_STATE, 1578CASE_GROUND_STATE, 1579/* Igrave Iacute Icircumflex Idiaeresis */ 1580CASE_GROUND_STATE, 1581CASE_GROUND_STATE, 1582CASE_GROUND_STATE, 1583CASE_GROUND_STATE, 1584/* Eth Ntilde Ograve Oacute */ 1585CASE_GROUND_STATE, 1586CASE_GROUND_STATE, 1587CASE_GROUND_STATE, 1588CASE_GROUND_STATE, 1589/* Ocircumflex Otilde Odiaeresis multiply */ 1590CASE_GROUND_STATE, 1591CASE_GROUND_STATE, 1592CASE_GROUND_STATE, 1593CASE_GROUND_STATE, 1594/* Ooblique Ugrave Uacute Ucircumflex */ 1595CASE_GROUND_STATE, 1596CASE_GROUND_STATE, 1597CASE_GROUND_STATE, 1598CASE_GROUND_STATE, 1599/* Udiaeresis Yacute Thorn ssharp */ 1600CASE_GROUND_STATE, 1601CASE_GROUND_STATE, 1602CASE_GROUND_STATE, 1603CASE_GROUND_STATE, 1604/* agrave aacute acircumflex atilde */ 1605CASE_GROUND_STATE, 1606CASE_GROUND_STATE, 1607CASE_GROUND_STATE, 1608CASE_GROUND_STATE, 1609/* adiaeresis aring ae ccedilla */ 1610CASE_GROUND_STATE, 1611CASE_GROUND_STATE, 1612CASE_GROUND_STATE, 1613CASE_GROUND_STATE, 1614/* egrave eacute ecircumflex ediaeresis */ 1615CASE_GROUND_STATE, 1616CASE_GROUND_STATE, 1617CASE_GROUND_STATE, 1618CASE_GROUND_STATE, 1619/* igrave iacute icircumflex idiaeresis */ 1620CASE_GROUND_STATE, 1621CASE_GROUND_STATE, 1622CASE_GROUND_STATE, 1623CASE_GROUND_STATE, 1624/* eth ntilde ograve oacute */ 1625CASE_GROUND_STATE, 1626CASE_GROUND_STATE, 1627CASE_GROUND_STATE, 1628CASE_GROUND_STATE, 1629/* ocircumflex otilde odiaeresis division */ 1630CASE_GROUND_STATE, 1631CASE_GROUND_STATE, 1632CASE_GROUND_STATE, 1633CASE_GROUND_STATE, 1634/* oslash ugrave uacute ucircumflex */ 1635CASE_GROUND_STATE, 1636CASE_GROUND_STATE, 1637CASE_GROUND_STATE, 1638CASE_GROUND_STATE, 1639/* udiaeresis yacute thorn ydiaeresis */ 1640CASE_GROUND_STATE, 1641CASE_GROUND_STATE, 1642CASE_GROUND_STATE, 1643CASE_GROUND_STATE, 1644}; 1645 1646// #pragma mark CASE_ESC_IGNORE table 1647int gEscIgnoreTable[] = 1648{ 1649/* NUL SOH STX ETX */ 1650CASE_IGNORE, 1651CASE_IGNORE, 1652CASE_IGNORE, 1653CASE_IGNORE, 1654/* EOT ENQ ACK BEL */ 1655CASE_IGNORE, 1656CASE_IGNORE, 1657CASE_IGNORE, 1658CASE_BELL, 1659/* BS HT NL VT */ 1660CASE_BS, 1661CASE_TAB, 1662CASE_VMOT, 1663CASE_VMOT, 1664/* NP CR SO SI */ 1665CASE_VMOT, 1666CASE_CR, 1667CASE_LS1, 1668CASE_LS0, 1669/* DLE DC1 DC2 DC3 */ 1670CASE_IGNORE, 1671CASE_IGNORE, 1672CASE_IGNORE, 1673CASE_IGNORE, 1674/* DC4 NAK SYN ETB */ 1675CASE_IGNORE, 1676CASE_IGNORE, 1677CASE_IGNORE, 1678CASE_IGNORE, 1679/* CAN EM SUB ESC */ 1680CASE_IGNORE, 1681CASE_IGNORE, 1682CASE_IGNORE, 1683CASE_ESC, 1684/* FS GS RS US */ 1685CASE_IGNORE, 1686CASE_IGNORE, 1687CASE_IGNORE, 1688CASE_IGNORE, 1689/* SP ! " # */ 1690CASE_IGNORE, 1691CASE_IGNORE, 1692CASE_IGNORE, 1693CASE_IGNORE, 1694/* $ % & ' */ 1695CASE_IGNORE, 1696CASE_IGNORE, 1697CASE_IGNORE, 1698CASE_IGNORE, 1699/* ( ) * + */ 1700CASE_IGNORE, 1701CASE_IGNORE, 1702CASE_IGNORE, 1703CASE_IGNORE, 1704/* , 1705 - . / */ 1706CASE_IGNORE, 1707CASE_IGNORE, 1708CASE_IGNORE, 1709CASE_IGNORE, 1710/* 0 1 2 3 */ 1711CASE_GROUND_STATE, 1712CASE_GROUND_STATE, 1713CASE_GROUND_STATE, 1714CASE_GROUND_STATE, 1715/* 4 5 6 7 */ 1716CASE_GROUND_STATE, 1717CASE_GROUND_STATE, 1718CASE_GROUND_STATE, 1719CASE_GROUND_STATE, 1720/* 8 9 : ; */ 1721CASE_GROUND_STATE, 1722CASE_GROUND_STATE, 1723CASE_GROUND_STATE, 1724CASE_GROUND_STATE, 1725/* < = > ? */ 1726CASE_GROUND_STATE, 1727CASE_GROUND_STATE, 1728CASE_GROUND_STATE, 1729CASE_GROUND_STATE, 1730/* @ A B C */ 1731CASE_GROUND_STATE, 1732CASE_GROUND_STATE, 1733CASE_GROUND_STATE, 1734CASE_GROUND_STATE, 1735/* D E F G */ 1736CASE_GROUND_STATE, 1737CASE_GROUND_STATE, 1738CASE_GROUND_STATE, 1739CASE_GROUND_STATE, 1740/* H I J K */ 1741CASE_GROUND_STATE, 1742CASE_GROUND_STATE, 1743CASE_GROUND_STATE, 1744CASE_GROUND_STATE, 1745/* L M N O */ 1746CASE_GROUND_STATE, 1747CASE_GROUND_STATE, 1748CASE_GROUND_STATE, 1749CASE_GROUND_STATE, 1750/* P Q R S */ 1751CASE_GROUND_STATE, 1752CASE_GROUND_STATE, 1753CASE_GROUND_STATE, 1754CASE_GROUND_STATE, 1755/* T U V W */ 1756CASE_GROUND_STATE, 1757CASE_GROUND_STATE, 1758CASE_GROUND_STATE, 1759CASE_GROUND_STATE, 1760/* X Y Z [ */ 1761CASE_GROUND_STATE, 1762CASE_GROUND_STATE, 1763CASE_GROUND_STATE, 1764CASE_GROUND_STATE, 1765/* \ ] ^ _ */ 1766CASE_GROUND_STATE, 1767CASE_GROUND_STATE, 1768CASE_GROUND_STATE, 1769CASE_GROUND_STATE, 1770/* ` a b c */ 1771CASE_GROUND_STATE, 1772CASE_GROUND_STATE, 1773CASE_GROUND_STATE, 1774CASE_GROUND_STATE, 1775/* d e f g */ 1776CASE_GROUND_STATE, 1777CASE_GROUND_STATE, 1778CASE_GROUND_STATE, 1779CASE_GROUND_STATE, 1780/* h i j k */ 1781CASE_GROUND_STATE, 1782CASE_GROUND_STATE, 1783CASE_GROUND_STATE, 1784CASE_GROUND_STATE, 1785/* l m n o */ 1786CASE_GROUND_STATE, 1787CASE_GROUND_STATE, 1788CASE_GROUND_STATE, 1789CASE_GROUND_STATE, 1790/* p q r s */ 1791CASE_GROUND_STATE, 1792CASE_GROUND_STATE, 1793CASE_GROUND_STATE, 1794CASE_GROUND_STATE, 1795/* t u v w */ 1796CASE_GROUND_STATE, 1797CASE_GROUND_STATE, 1798CASE_GROUND_STATE, 1799CASE_GROUND_STATE, 1800/* x y z { */ 1801CASE_GROUND_STATE, 1802CASE_GROUND_STATE, 1803CASE_GROUND_STATE, 1804CASE_GROUND_STATE, 1805/* | } ~ DEL */ 1806CASE_GROUND_STATE, 1807CASE_GROUND_STATE, 1808CASE_GROUND_STATE, 1809CASE_GROUND_STATE, 1810/* 0x80 0x81 0x82 0x83 */ 1811CASE_IGNORE, 1812CASE_IGNORE, 1813CASE_IGNORE, 1814CASE_IGNORE, 1815/* 0x84 0x85 0x86 0x87 */ 1816CASE_IGNORE, 1817CASE_IGNORE, 1818CASE_IGNORE, 1819CASE_IGNORE, 1820/* 0x88 0x89 0x8a 0x8b */ 1821CASE_IGNORE, 1822CASE_IGNORE, 1823CASE_IGNORE, 1824CASE_IGNORE, 1825/* 0x8c 0x8d 0x8e 0x8f */ 1826CASE_IGNORE, 1827CASE_IGNORE, 1828CASE_IGNORE, 1829CASE_IGNORE, 1830/* 0x90 0x91 0x92 0x93 */ 1831CASE_IGNORE, 1832CASE_IGNORE, 1833CASE_IGNORE, 1834CASE_IGNORE, 1835/* 0x94 0x95 0x96 0x97 */ 1836CASE_IGNORE, 1837CASE_IGNORE, 1838CASE_IGNORE, 1839CASE_IGNORE, 1840/* 0x99 0x99 0x9a 0x9b */ 1841CASE_IGNORE, 1842CASE_IGNORE, 1843CASE_IGNORE, 1844CASE_IGNORE, 1845/* 0x9c 0x9d 0x9e 0x9f */ 1846CASE_IGNORE, 1847CASE_IGNORE, 1848CASE_IGNORE, 1849CASE_IGNORE, 1850/* nobreakspace exclamdown cent sterling */ 1851CASE_GROUND_STATE, 1852CASE_GROUND_STATE, 1853CASE_GROUND_STATE, 1854CASE_GROUND_STATE, 1855/* currency yen brokenbar section */ 1856CASE_GROUND_STATE, 1857CASE_GROUND_STATE, 1858CASE_GROUND_STATE, 1859CASE_GROUND_STATE, 1860/* diaeresis copyright ordfeminine guillemotleft */ 1861CASE_GROUND_STATE, 1862CASE_GROUND_STATE, 1863CASE_GROUND_STATE, 1864CASE_GROUND_STATE, 1865/* notsign hyphen registered macron */ 1866CASE_GROUND_STATE, 1867CASE_GROUND_STATE, 1868CASE_GROUND_STATE, 1869CASE_GROUND_STATE, 1870/* degree plusminus twosuperior threesuperior */ 1871CASE_GROUND_STATE, 1872CASE_GROUND_STATE, 1873CASE_GROUND_STATE, 1874CASE_GROUND_STATE, 1875/* acute mu paragraph periodcentered */ 1876CASE_GROUND_STATE, 1877CASE_GROUND_STATE, 1878CASE_GROUND_STATE, 1879CASE_GROUND_STATE, 1880/* cedilla onesuperior masculine guillemotright */ 1881CASE_GROUND_STATE, 1882CASE_GROUND_STATE, 1883CASE_GROUND_STATE, 1884CASE_GROUND_STATE, 1885/* onequarter onehalf threequarters questiondown */ 1886CASE_GROUND_STATE, 1887CASE_GROUND_STATE, 1888CASE_GROUND_STATE, 1889CASE_GROUND_STATE, 1890/* Agrave Aacute Acircumflex Atilde */ 1891CASE_GROUND_STATE, 1892CASE_GROUND_STATE, 1893CASE_GROUND_STATE, 1894CASE_GROUND_STATE, 1895/* Adiaeresis Aring AE Ccedilla */ 1896CASE_GROUND_STATE, 1897CASE_GROUND_STATE, 1898CASE_GROUND_STATE, 1899CASE_GROUND_STATE, 1900/* Egrave Eacute Ecircumflex Ediaeresis */ 1901CASE_GROUND_STATE, 1902CASE_GROUND_STATE, 1903CASE_GROUND_STATE, 1904CASE_GROUND_STATE, 1905/* Igrave Iacute Icircumflex Idiaeresis */ 1906CASE_GROUND_STATE, 1907CASE_GROUND_STATE, 1908CASE_GROUND_STATE, 1909CASE_GROUND_STATE, 1910/* Eth Ntilde Ograve Oacute */ 1911CASE_GROUND_STATE, 1912CASE_GROUND_STATE, 1913CASE_GROUND_STATE, 1914CASE_GROUND_STATE, 1915/* Ocircumflex Otilde Odiaeresis multiply */ 1916CASE_GROUND_STATE, 1917CASE_GROUND_STATE, 1918CASE_GROUND_STATE, 1919CASE_GROUND_STATE, 1920/* Ooblique Ugrave Uacute Ucircumflex */ 1921CASE_GROUND_STATE, 1922CASE_GROUND_STATE, 1923CASE_GROUND_STATE, 1924CASE_GROUND_STATE, 1925/* Udiaeresis Yacute Thorn ssharp */ 1926CASE_GROUND_STATE, 1927CASE_GROUND_STATE, 1928CASE_GROUND_STATE, 1929CASE_GROUND_STATE, 1930/* agrave aacute acircumflex atilde */ 1931CASE_GROUND_STATE, 1932CASE_GROUND_STATE, 1933CASE_GROUND_STATE, 1934CASE_GROUND_STATE, 1935/* adiaeresis aring ae ccedilla */ 1936CASE_GROUND_STATE, 1937CASE_GROUND_STATE, 1938CASE_GROUND_STATE, 1939CASE_GROUND_STATE, 1940/* egrave eacute ecircumflex ediaeresis */ 1941CASE_GROUND_STATE, 1942CASE_GROUND_STATE, 1943CASE_GROUND_STATE, 1944CASE_GROUND_STATE, 1945/* igrave iacute icircumflex idiaeresis */ 1946CASE_GROUND_STATE, 1947CASE_GROUND_STATE, 1948CASE_GROUND_STATE, 1949CASE_GROUND_STATE, 1950/* eth ntilde ograve oacute */ 1951CASE_GROUND_STATE, 1952CASE_GROUND_STATE, 1953CASE_GROUND_STATE, 1954CASE_GROUND_STATE, 1955/* ocircumflex otilde odiaeresis division */ 1956CASE_GROUND_STATE, 1957CASE_GROUND_STATE, 1958CASE_GROUND_STATE, 1959CASE_GROUND_STATE, 1960/* oslash ugrave uacute ucircumflex */ 1961CASE_GROUND_STATE, 1962CASE_GROUND_STATE, 1963CASE_GROUND_STATE, 1964CASE_GROUND_STATE, 1965/* udiaeresis yacute thorn ydiaeresis */ 1966CASE_GROUND_STATE, 1967CASE_GROUND_STATE, 1968CASE_GROUND_STATE, 1969CASE_GROUND_STATE, 1970}; 1971 1972// #pragma mark ESC table 1973int gEscTable[] = 1974{ 1975/* NUL SOH STX ETX */ 1976CASE_IGNORE, 1977CASE_IGNORE, 1978CASE_IGNORE, 1979CASE_IGNORE, 1980/* EOT ENQ ACK BEL */ 1981CASE_IGNORE, 1982CASE_IGNORE, 1983CASE_IGNORE, 1984CASE_BELL, 1985/* BS HT NL VT */ 1986CASE_BS, 1987CASE_TAB, 1988CASE_LF, 1989CASE_LF, /*CASE_UP,*/ 1990/* NP CR SO SI */ 1991CASE_LF, /*CASE_IGNORE,*/ 1992CASE_CR, 1993CASE_LS1, 1994CASE_LS0, 1995/* DLE DC1 DC2 DC3 */ 1996CASE_IGNORE, 1997CASE_IGNORE, 1998CASE_IGNORE, 1999CASE_IGNORE, 2000/* DC4 NAK SYN ETB */ 2001CASE_IGNORE, 2002CASE_IGNORE, 2003CASE_IGNORE, 2004CASE_IGNORE, 2005/* CAN EM SUB ESC */ 2006CASE_IGNORE, 2007CASE_IGNORE, 2008CASE_IGNORE, 2009CASE_ESC, 2010/* FS GS RS US */ 2011CASE_IGNORE, 2012CASE_IGNORE, 2013CASE_IGNORE, 2014CASE_IGNORE, 2015/* SP ! " # */ 2016CASE_ESC_IGNORE, 2017CASE_ESC_IGNORE, 2018CASE_ESC_IGNORE, 2019CASE_SCR_STATE, 2020/* $ % & ' */ 2021CASE_ESC_IGNORE, 2022CASE_ESC_IGNORE, 2023CASE_ESC_IGNORE, 2024CASE_ESC_IGNORE, 2025/* ( ) * + */ 2026CASE_SCS_STATE, 2027CASE_SCS_STATE, 2028CASE_SCS_STATE, 2029CASE_SCS_STATE, 2030/* , - . / */ 2031CASE_SCS_STATE, /* not defined in ISO2022 but used in Mule */ 2032CASE_SCS_STATE, 2033CASE_SCS_STATE, 2034CASE_SCS_STATE, 2035/* 0 1 2 3 */ 2036CASE_GROUND_STATE, 2037CASE_GROUND_STATE, 2038CASE_GROUND_STATE, 2039CASE_GROUND_STATE, 2040/* 4 5 6 7 */ 2041CASE_GROUND_STATE, 2042CASE_GROUND_STATE, 2043CASE_GROUND_STATE, 2044CASE_DECSC, 2045/* 8 9 : ; */ 2046CASE_DECRC, 2047CASE_GROUND_STATE, 2048CASE_GROUND_STATE, 2049CASE_GROUND_STATE, 2050/* < = > ? */ 2051CASE_GROUND_STATE, 2052CASE_GROUND_STATE, 2053CASE_GROUND_STATE, 2054CASE_GROUND_STATE, 2055/* @ A B C */ 2056CASE_GROUND_STATE, 2057CASE_GROUND_STATE, 2058CASE_GROUND_STATE, 2059CASE_GROUND_STATE, 2060/* D E F G */ 2061CASE_INDEX, 2062CASE_NEXT_LINE, 2063CASE_GROUND_STATE, 2064CASE_GROUND_STATE, 2065/* H I J K */ 2066CASE_HTS, 2067CASE_GROUND_STATE, 2068CASE_GROUND_STATE, 2069CASE_GROUND_STATE, 2070/* L M N O */ 2071CASE_GROUND_STATE, 2072CASE_RI, 2073CASE_SS2, 2074CASE_SS3, 2075/* P Q R S */ 2076CASE_IGNORE_STATE, 2077CASE_GROUND_STATE, 2078CASE_GROUND_STATE, 2079CASE_GROUND_STATE, 2080/* T U V W */ 2081CASE_XTERM_TITLE, 2082CASE_GROUND_STATE, 2083CASE_GROUND_STATE, 2084CASE_GROUND_STATE, 2085/* X Y Z [ */ 2086CASE_GROUND_STATE, 2087CASE_GROUND_STATE, 2088CASE_DA1, 2089CASE_CSI_STATE, 2090/* \ ] ^ _ */ 2091CASE_GROUND_STATE, 2092CASE_OSC, 2093CASE_IGNORE_STATE, 2094CASE_IGNORE_STATE, 2095/* ` a b c */ 2096CASE_GROUND_STATE, 2097CASE_GROUND_STATE, 2098CASE_GROUND_STATE, 2099CASE_RIS, 2100/* d e f g */ 2101CASE_GROUND_STATE, 2102CASE_GROUND_STATE, 2103CASE_GROUND_STATE, 2104CASE_GROUND_STATE, 2105/* h i j k */ 2106CASE_GROUND_STATE, 2107CASE_GROUND_STATE, 2108CASE_GROUND_STATE, 2109CASE_GROUND_STATE, 2110/* l m n o */ 2111CASE_GROUND_STATE, 2112CASE_GROUND_STATE, 2113CASE_LS2, 2114CASE_LS3, 2115/* p q r s */ 2116CASE_GROUND_STATE, 2117CASE_GROUND_STATE, 2118CASE_GROUND_STATE, 2119CASE_GROUND_STATE, 2120/* t u v w */ 2121CASE_GROUND_STATE, 2122CASE_GROUND_STATE, 2123CASE_GROUND_STATE, 2124CASE_GROUND_STATE, 2125/* x y z { */ 2126CASE_GROUND_STATE, 2127CASE_GROUND_STATE, 2128CASE_GROUND_STATE, 2129CASE_GROUND_STATE, 2130/* | } ~ DEL */ 2131CASE_LS3R, 2132CASE_LS2R, 2133CASE_LS1R, 2134CASE_GROUND_STATE, 2135/* 0x80 0x81 0x82 0x83 */ 2136CASE_IGNORE, 2137CASE_IGNORE, 2138CASE_IGNORE, 2139CASE_IGNORE, 2140/* 0x84 0x85 0x86 0x87 */ 2141CASE_IGNORE, 2142CASE_IGNORE, 2143CASE_IGNORE, 2144CASE_IGNORE, 2145/* 0x88 0x89 0x8a 0x8b */ 2146CASE_IGNORE, 2147CASE_IGNORE, 2148CASE_IGNORE, 2149CASE_IGNORE, 2150/* 0x8c 0x8d 0x8e 0x8f */ 2151CASE_IGNORE, 2152CASE_IGNORE, 2153CASE_IGNORE, 2154CASE_IGNORE, 2155/* 0x90 0x91 0x92 0x93 */ 2156CASE_IGNORE, 2157CASE_IGNORE, 2158CASE_IGNORE, 2159CASE_IGNORE, 2160/* 0x94 0x95 0x96 0x97 */ 2161CASE_IGNORE, 2162CASE_IGNORE, 2163CASE_IGNORE, 2164CASE_IGNORE, 2165/* 0x99 0x99 0x9a 0x9b */ 2166CASE_IGNORE, 2167CASE_IGNORE, 2168CASE_IGNORE, 2169CASE_IGNORE, 2170/* 0x9c 0x9d 0x9e 0x9f */ 2171CASE_IGNORE, 2172CASE_IGNORE, 2173CASE_IGNORE, 2174CASE_IGNORE, 2175/* nobreakspace exclamdown cent sterling */ 2176CASE_GROUND_STATE, 2177CASE_GROUND_STATE, 2178CASE_GROUND_STATE, 2179CASE_GROUND_STATE, 2180/* currency yen brokenbar section */ 2181CASE_GROUND_STATE, 2182CASE_GROUND_STATE, 2183CASE_GROUND_STATE, 2184CASE_GROUND_STATE, 2185/* diaeresis copyright ordfeminine guillemotleft */ 2186CASE_GROUND_STATE, 2187CASE_GROUND_STATE, 2188CASE_GROUND_STATE, 2189CASE_GROUND_STATE, 2190/* notsign hyphen registered macron */ 2191CASE_GROUND_STATE, 2192CASE_GROUND_STATE, 2193CASE_GROUND_STATE, 2194CASE_GROUND_STATE, 2195/* degree plusminus twosuperior threesuperior */ 2196CASE_GROUND_STATE, 2197CASE_GROUND_STATE, 2198CASE_GROUND_STATE, 2199CASE_GROUND_STATE, 2200/* acute mu paragraph periodcentered */ 2201CASE_GROUND_STATE, 2202CASE_GROUND_STATE, 2203CASE_GROUND_STATE, 2204CASE_GROUND_STATE, 2205/* cedilla onesuperior masculine guillemotright */ 2206CASE_GROUND_STATE, 2207CASE_GROUND_STATE, 2208CASE_GROUND_STATE, 2209CASE_GROUND_STATE, 2210/* onequarter onehalf threequarters questiondown */ 2211CASE_GROUND_STATE, 2212CASE_GROUND_STATE, 2213CASE_GROUND_STATE, 2214CASE_GROUND_STATE, 2215/* Agrave Aacute Acircumflex Atilde */ 2216CASE_GROUND_STATE, 2217CASE_GROUND_STATE, 2218CASE_GROUND_STATE, 2219CASE_GROUND_STATE, 2220/* Adiaeresis Aring AE Ccedilla */ 2221CASE_GROUND_STATE, 2222CASE_GROUND_STATE, 2223CASE_GROUND_STATE, 2224CASE_GROUND_STATE, 2225/* Egrave Eacute Ecircumflex Ediaeresis */ 2226CASE_GROUND_STATE, 2227CASE_GROUND_STATE, 2228CASE_GROUND_STATE, 2229CASE_GROUND_STATE, 2230/* Igrave Iacute Icircumflex Idiaeresis */ 2231CASE_GROUND_STATE, 2232CASE_GROUND_STATE, 2233CASE_GROUND_STATE, 2234CASE_GROUND_STATE, 2235/* Eth Ntilde Ograve Oacute */ 2236CASE_GROUND_STATE, 2237CASE_GROUND_STATE, 2238CASE_GROUND_STATE, 2239CASE_GROUND_STATE, 2240/* Ocircumflex Otilde Odiaeresis multiply */ 2241CASE_GROUND_STATE, 2242CASE_GROUND_STATE, 2243CASE_GROUND_STATE, 2244CASE_GROUND_STATE, 2245/* Ooblique Ugrave Uacute Ucircumflex */ 2246CASE_GROUND_STATE, 2247CASE_GROUND_STATE, 2248CASE_GROUND_STATE, 2249CASE_GROUND_STATE, 2250/* Udiaeresis Yacute Thorn ssharp */ 2251CASE_GROUND_STATE, 2252CASE_GROUND_STATE, 2253CASE_GROUND_STATE, 2254CASE_GROUND_STATE, 2255/* agrave aacute acircumflex atilde */ 2256CASE_GROUND_STATE, 2257CASE_GROUND_STATE, 2258CASE_GROUND_STATE, 2259CASE_GROUND_STATE, 2260/* adiaeresis aring ae ccedilla */ 2261CASE_GROUND_STATE, 2262CASE_GROUND_STATE, 2263CASE_GROUND_STATE, 2264CASE_GROUND_STATE, 2265/* egrave eacute ecircumflex ediaeresis */ 2266CASE_GROUND_STATE, 2267CASE_GROUND_STATE, 2268CASE_GROUND_STATE, 2269CASE_GROUND_STATE, 2270/* igrave iacute icircumflex idiaeresis */ 2271CASE_GROUND_STATE, 2272CASE_GROUND_STATE, 2273CASE_GROUND_STATE, 2274CASE_GROUND_STATE, 2275/* eth ntilde ograve oacute */ 2276CASE_GROUND_STATE, 2277CASE_GROUND_STATE, 2278CASE_GROUND_STATE, 2279CASE_GROUND_STATE, 2280/* ocircumflex otilde odiaeresis division */ 2281CASE_GROUND_STATE, 2282CASE_GROUND_STATE, 2283CASE_GROUND_STATE, 2284CASE_GROUND_STATE, 2285/* oslash ugrave uacute ucircumflex */ 2286CASE_GROUND_STATE, 2287CASE_GROUND_STATE, 2288CASE_GROUND_STATE, 2289CASE_GROUND_STATE, 2290/* udiaeresis yacute thorn ydiaeresis */ 2291CASE_GROUND_STATE, 2292CASE_GROUND_STATE, 2293CASE_GROUND_STATE, 2294CASE_GROUND_STATE, 2295}; 2296 2297// #pragma mark CASE_IGNORE_ESC table 2298int gIesTable[] = 2299{ 2300/* NUL SOH STX ETX */ 2301CASE_IGNORE_STATE, 2302CASE_IGNORE_STATE, 2303CASE_IGNORE_STATE, 2304CASE_IGNORE_STATE, 2305/* EOT ENQ ACK BEL */ 2306CASE_IGNORE_STATE, 2307CASE_IGNORE_STATE, 2308CASE_IGNORE_STATE, 2309CASE_IGNORE_STATE, 2310/* BS HT NL VT */ 2311CASE_IGNORE_STATE, 2312CASE_IGNORE_STATE, 2313CASE_IGNORE_STATE, 2314CASE_IGNORE_STATE, 2315/* NP CR SO SI */ 2316CASE_IGNORE_STATE, 2317CASE_IGNORE_STATE, 2318CASE_IGNORE_STATE, 2319CASE_IGNORE_STATE, 2320/* DLE DC1 DC2 DC3 */ 2321CASE_IGNORE_STATE, 2322CASE_IGNORE_STATE, 2323CASE_IGNORE_STATE, 2324CASE_IGNORE_STATE, 2325/* DC4 NAK SYN ETB */ 2326CASE_IGNORE_STATE, 2327CASE_IGNORE_STATE, 2328CASE_IGNORE_STATE, 2329CASE_IGNORE_STATE, 2330/* CAN EM SUB ESC */ 2331CASE_IGNORE_STATE, 2332CASE_IGNORE_STATE, 2333CASE_IGNORE_STATE, 2334CASE_IGNORE_STATE, 2335/* FS GS RS US */ 2336CASE_IGNORE_STATE, 2337CASE_IGNORE_STATE, 2338CASE_IGNORE_STATE, 2339CASE_IGNORE_STATE, 2340/* SP ! " # */ 2341CASE_IGNORE_STATE, 2342CASE_IGNORE_STATE, 2343CASE_IGNORE_STATE, 2344CASE_IGNORE_STATE, 2345/* $ % & ' */ 2346CASE_IGNORE_STATE, 2347CASE_IGNORE_STATE, 2348CASE_IGNORE_STATE, 2349CASE_IGNORE_STATE, 2350/* ( ) * + */ 2351CASE_IGNORE_STATE, 2352CASE_IGNORE_STATE, 2353CASE_IGNORE_STATE, 2354CASE_IGNORE_STATE, 2355/* , - . / */ 2356CASE_IGNORE_STATE, 2357CASE_IGNORE_STATE, 2358CASE_IGNORE_STATE, 2359CASE_IGNORE_STATE, 2360/* 0 1 2 3 */ 2361CASE_IGNORE_STATE, 2362CASE_IGNORE_STATE, 2363CASE_IGNORE_STATE, 2364CASE_IGNORE_STATE, 2365/* 4 5 6 7 */ 2366CASE_IGNORE_STATE, 2367CASE_IGNORE_STATE, 2368CASE_IGNORE_STATE, 2369CASE_IGNORE_STATE, 2370/* 8 9 : ; */ 2371CASE_IGNORE_STATE, 2372CASE_IGNORE_STATE, 2373CASE_IGNORE_STATE, 2374CASE_IGNORE_STATE, 2375/* < = > ? */ 2376CASE_IGNORE_STATE, 2377CASE_IGNORE_STATE, 2378CASE_IGNORE_STATE, 2379CASE_IGNORE_STATE, 2380/* @ A B C */ 2381CASE_IGNORE_STATE, 2382CASE_IGNORE_STATE, 2383CASE_IGNORE_STATE, 2384CASE_IGNORE_STATE, 2385/* D E F G */ 2386CASE_IGNORE_STATE, 2387CASE_IGNORE_STATE, 2388CASE_IGNORE_STATE, 2389CASE_IGNORE_STATE, 2390/* H I J K */ 2391CASE_IGNORE_STATE, 2392CASE_IGNORE_STATE, 2393CASE_IGNORE_STATE, 2394CASE_IGNORE_STATE, 2395/* L M N O */ 2396CASE_IGNORE_STATE, 2397CASE_IGNORE_STATE, 2398CASE_IGNORE_STATE, 2399CASE_IGNORE_STATE, 2400/* P Q R S */ 2401CASE_IGNORE_STATE, 2402CASE_IGNORE_STATE, 2403CASE_IGNORE_STATE, 2404CASE_IGNORE_STATE, 2405/* T U V W */ 2406CASE_IGNORE_STATE, 2407CASE_IGNORE_STATE, 2408CASE_IGNORE_STATE, 2409CASE_IGNORE_STATE, 2410/* X Y Z [ */ 2411CASE_IGNORE_STATE, 2412CASE_IGNORE_STATE, 2413CASE_IGNORE_STATE, 2414CASE_IGNORE_STATE, 2415/* \ ] ^ _ */ 2416CASE_GROUND_STATE, 2417CASE_IGNORE_STATE, 2418CASE_IGNORE_STATE, 2419CASE_IGNORE_STATE, 2420/* ` a b c */ 2421CASE_IGNORE_STATE, 2422CASE_IGNORE_STATE, 2423CASE_IGNORE_STATE, 2424CASE_IGNORE_STATE, 2425/* d e f g */ 2426CASE_IGNORE_STATE, 2427CASE_IGNORE_STATE, 2428CASE_IGNORE_STATE, 2429CASE_IGNORE_STATE, 2430/* h i j k */ 2431CASE_IGNORE_STATE, 2432CASE_IGNORE_STATE, 2433CASE_IGNORE_STATE, 2434CASE_IGNORE_STATE, 2435/* l m n o */ 2436CASE_IGNORE_STATE, 2437CASE_IGNORE_STATE, 2438CASE_IGNORE_STATE, 2439CASE_IGNORE_STATE, 2440/* p q r s */ 2441CASE_IGNORE_STATE, 2442CASE_IGNORE_STATE, 2443CASE_IGNORE_STATE, 2444CASE_IGNORE_STATE, 2445/* t u v w */ 2446CASE_IGNORE_STATE, 2447CASE_IGNORE_STATE, 2448CASE_IGNORE_STATE, 2449CASE_IGNORE_STATE, 2450/* x y z { */ 2451CASE_IGNORE_STATE, 2452CASE_IGNORE_STATE, 2453CASE_IGNORE_STATE, 2454CASE_IGNORE_STATE, 2455/* | } ~ DEL */ 2456CASE_IGNORE_STATE, 2457CASE_IGNORE_STATE, 2458CASE_IGNORE_STATE, 2459CASE_IGNORE_STATE, 2460/* 0x80 0x81 0x82 0x83 */ 2461CASE_IGNORE, 2462CASE_IGNORE, 2463CASE_IGNORE, 2464CASE_IGNORE, 2465/* 0x84 0x85 0x86 0x87 */ 2466CASE_IGNORE, 2467CASE_IGNORE, 2468CASE_IGNORE, 2469CASE_IGNORE, 2470/* 0x88 0x89 0x8a 0x8b */ 2471CASE_IGNORE, 2472CASE_IGNORE, 2473CASE_IGNORE, 2474CASE_IGNORE, 2475/* 0x8c 0x8d 0x8e 0x8f */ 2476CASE_IGNORE, 2477CASE_IGNORE, 2478CASE_IGNORE, 2479CASE_IGNORE, 2480/* 0x90 0x91 0x92 0x93 */ 2481CASE_IGNORE, 2482CASE_IGNORE, 2483CASE_IGNORE, 2484CASE_IGNORE, 2485/* 0x94 0x95 0x96 0x97 */ 2486CASE_IGNORE, 2487CASE_IGNORE, 2488CASE_IGNORE, 2489CASE_IGNORE, 2490/* 0x99 0x99 0x9a 0x9b */ 2491CASE_IGNORE, 2492CASE_IGNORE, 2493CASE_IGNORE, 2494CASE_IGNORE, 2495/* 0x9c 0x9d 0x9e 0x9f */ 2496CASE_IGNORE, 2497CASE_IGNORE, 2498CASE_IGNORE, 2499CASE_IGNORE, 2500/* nobreakspace exclamdown cent sterling */ 2501CASE_GROUND_STATE, 2502CASE_GROUND_STATE, 2503CASE_GROUND_STATE, 2504CASE_GROUND_STATE, 2505/* currency yen brokenbar section */ 2506CASE_GROUND_STATE, 2507CASE_GROUND_STATE, 2508CASE_GROUND_STATE, 2509CASE_GROUND_STATE, 2510/* diaeresis copyright ordfeminine guillemotleft */ 2511CASE_GROUND_STATE, 2512CASE_GROUND_STATE, 2513CASE_GROUND_STATE, 2514CASE_GROUND_STATE, 2515/* notsign hyphen registered macron */ 2516CASE_GROUND_STATE, 2517CASE_GROUND_STATE, 2518CASE_GROUND_STATE, 2519CASE_GROUND_STATE, 2520/* degree plusminus twosuperior threesuperior */ 2521CASE_GROUND_STATE, 2522CASE_GROUND_STATE, 2523CASE_GROUND_STATE, 2524CASE_GROUND_STATE, 2525/* acute mu paragraph periodcentered */ 2526CASE_GROUND_STATE, 2527CASE_GROUND_STATE, 2528CASE_GROUND_STATE, 2529CASE_GROUND_STATE, 2530/* cedilla onesuperior masculine guillemotright */ 2531CASE_GROUND_STATE, 2532CASE_GROUND_STATE, 2533CASE_GROUND_STATE, 2534CASE_GROUND_STATE, 2535/* onequarter onehalf threequarters questiondown */ 2536CASE_GROUND_STATE, 2537CASE_GROUND_STATE, 2538CASE_GROUND_STATE, 2539CASE_GROUND_STATE, 2540/* Agrave Aacute Acircumflex Atilde */ 2541CASE_GROUND_STATE, 2542CASE_GROUND_STATE, 2543CASE_GROUND_STATE, 2544CASE_GROUND_STATE, 2545/* Adiaeresis Aring AE Ccedilla */ 2546CASE_GROUND_STATE, 2547CASE_GROUND_STATE, 2548CASE_GROUND_STATE, 2549CASE_GROUND_STATE, 2550/* Egrave Eacute Ecircumflex Ediaeresis */ 2551CASE_GROUND_STATE, 2552CASE_GROUND_STATE, 2553CASE_GROUND_STATE, 2554CASE_GROUND_STATE, 2555/* Igrave Iacute Icircumflex Idiaeresis */ 2556CASE_GROUND_STATE, 2557CASE_GROUND_STATE, 2558CASE_GROUND_STATE, 2559CASE_GROUND_STATE, 2560/* Eth Ntilde Ograve Oacute */ 2561CASE_GROUND_STATE, 2562CASE_GROUND_STATE, 2563CASE_GROUND_STATE, 2564CASE_GROUND_STATE, 2565/* Ocircumflex Otilde Odiaeresis multiply */ 2566CASE_GROUND_STATE, 2567CASE_GROUND_STATE, 2568CASE_GROUND_STATE, 2569CASE_GROUND_STATE, 2570/* Ooblique Ugrave Uacute Ucircumflex */ 2571CASE_GROUND_STATE, 2572CASE_GROUND_STATE, 2573CASE_GROUND_STATE, 2574CASE_GROUND_STATE, 2575/* Udiaeresis Yacute Thorn ssharp */ 2576CASE_GROUND_STATE, 2577CASE_GROUND_STATE, 2578CASE_GROUND_STATE, 2579CASE_GROUND_STATE, 2580/* agrave aacute acircumflex atilde */ 2581CASE_GROUND_STATE, 2582CASE_GROUND_STATE, 2583CASE_GROUND_STATE, 2584CASE_GROUND_STATE, 2585/* adiaeresis aring ae ccedilla */ 2586CASE_GROUND_STATE, 2587CASE_GROUND_STATE, 2588CASE_GROUND_STATE, 2589CASE_GROUND_STATE, 2590/* egrave eacute ecircumflex ediaeresis */ 2591CASE_GROUND_STATE, 2592CASE_GROUND_STATE, 2593CASE_GROUND_STATE, 2594CASE_GROUND_STATE, 2595/* igrave iacute icircumflex idiaeresis */ 2596CASE_GROUND_STATE, 2597CASE_GROUND_STATE, 2598CASE_GROUND_STATE, 2599CASE_GROUND_STATE, 2600/* eth ntilde ograve oacute */ 2601CASE_GROUND_STATE, 2602CASE_GROUND_STATE, 2603CASE_GROUND_STATE, 2604CASE_GROUND_STATE, 2605/* ocircumflex otilde odiaeresis division */ 2606CASE_GROUND_STATE, 2607CASE_GROUND_STATE, 2608CASE_GROUND_STATE, 2609CASE_GROUND_STATE, 2610/* oslash ugrave uacute ucircumflex */ 2611CASE_GROUND_STATE, 2612CASE_GROUND_STATE, 2613CASE_GROUND_STATE, 2614CASE_GROUND_STATE, 2615/* udiaeresis yacute thorn ydiaeresis */ 2616CASE_GROUND_STATE, 2617CASE_GROUND_STATE, 2618CASE_GROUND_STATE, 2619CASE_GROUND_STATE, 2620}; 2621 2622// #pragma mark CASE_IGNORE_STATE table 2623int gIgnoreTable[] = 2624{ 2625/* NUL SOH STX ETX */ 2626CASE_IGNORE, 2627CASE_IGNORE, 2628CASE_IGNORE, 2629CASE_IGNORE, 2630/* EOT ENQ ACK BEL */ 2631CASE_IGNORE, 2632CASE_IGNORE, 2633CASE_IGNORE, 2634CASE_IGNORE, 2635/* BS HT NL VT */ 2636CASE_IGNORE, 2637CASE_IGNORE, 2638CASE_IGNORE, 2639CASE_IGNORE, 2640/* NP CR SO SI */ 2641CASE_IGNORE, 2642CASE_IGNORE, 2643CASE_IGNORE, 2644CASE_IGNORE, 2645/* DLE DC1 DC2 DC3 */ 2646CASE_IGNORE, 2647CASE_IGNORE, 2648CASE_IGNORE, 2649CASE_IGNORE, 2650/* DC4 NAK SYN ETB */ 2651CASE_IGNORE, 2652CASE_IGNORE, 2653CASE_IGNORE, 2654CASE_IGNORE, 2655/* CAN EM SUB ESC */ 2656CASE_GROUND_STATE, 2657CASE_IGNORE, 2658CASE_GROUND_STATE, 2659CASE_IGNORE_ESC, 2660/* FS GS RS US */ 2661CASE_IGNORE, 2662CASE_IGNORE, 2663CASE_IGNORE, 2664CASE_IGNORE, 2665/* SP ! " # */ 2666CASE_IGNORE, 2667CASE_IGNORE, 2668CASE_IGNORE, 2669CASE_IGNORE, 2670/* $ % & ' */ 2671CASE_IGNORE, 2672CASE_IGNORE, 2673CASE_IGNORE, 2674CASE_IGNORE, 2675/* ( ) * + */ 2676CASE_IGNORE, 2677CASE_IGNORE, 2678CASE_IGNORE, 2679CASE_IGNORE, 2680/* , - . / */ 2681CASE_IGNORE, 2682CASE_IGNORE, 2683CASE_IGNORE, 2684CASE_IGNORE, 2685/* 0 1 2 3 */ 2686CASE_IGNORE, 2687CASE_IGNORE, 2688CASE_IGNORE, 2689CASE_IGNORE, 2690/* 4 5 6 7 */ 2691CASE_IGNORE, 2692CASE_IGNORE, 2693CASE_IGNORE, 2694CASE_IGNORE, 2695/* 8 9 : ; */ 2696CASE_IGNORE, 2697CASE_IGNORE, 2698CASE_IGNORE, 2699CASE_IGNORE, 2700/* < = > ? */ 2701CASE_IGNORE, 2702CASE_IGNORE, 2703CASE_IGNORE, 2704CASE_IGNORE, 2705/* @ A B C */ 2706CASE_IGNORE, 2707CASE_IGNORE, 2708CASE_IGNORE, 2709CASE_IGNORE, 2710/* D E F G */ 2711CASE_IGNORE, 2712CASE_IGNORE, 2713CASE_IGNORE, 2714CASE_IGNORE, 2715/* H I J K */ 2716CASE_IGNORE, 2717CASE_IGNORE, 2718CASE_IGNORE, 2719CASE_IGNORE, 2720/* L M N O */ 2721CASE_IGNORE, 2722CASE_IGNORE, 2723CASE_IGNORE, 2724CASE_IGNORE, 2725/* P Q R S */ 2726CASE_IGNORE, 2727CASE_IGNORE, 2728CASE_IGNORE, 2729CASE_IGNORE, 2730/* T U V W */ 2731CASE_IGNORE, 2732CASE_IGNORE, 2733CASE_IGNORE, 2734CASE_IGNORE, 2735/* X Y Z [ */ 2736CASE_IGNORE, 2737CASE_IGNORE, 2738CASE_IGNORE, 2739CASE_IGNORE, 2740/* \ ] ^ _ */ 2741CASE_IGNORE, 2742CASE_IGNORE, 2743CASE_IGNORE, 2744CASE_IGNORE, 2745/* ` a b c */ 2746CASE_IGNORE, 2747CASE_IGNORE, 2748CASE_IGNORE, 2749CASE_IGNORE, 2750/* d e f g */ 2751CASE_IGNORE, 2752CASE_IGNORE, 2753CASE_IGNORE, 2754CASE_IGNORE, 2755/* h i j k */ 2756CASE_IGNORE, 2757CASE_IGNORE, 2758CASE_IGNORE, 2759CASE_IGNORE, 2760/* l m n o */ 2761CASE_IGNORE, 2762CASE_IGNORE, 2763CASE_IGNORE, 2764CASE_IGNORE, 2765/* p q r s */ 2766CASE_IGNORE, 2767CASE_IGNORE, 2768CASE_IGNORE, 2769CASE_IGNORE, 2770/* t u v w */ 2771CASE_IGNORE, 2772CASE_IGNORE, 2773CASE_IGNORE, 2774CASE_IGNORE, 2775/* x y z { */ 2776CASE_IGNORE, 2777CASE_IGNORE, 2778CASE_IGNORE, 2779CASE_IGNORE, 2780/* | } ~ DEL */ 2781CASE_IGNORE, 2782CASE_IGNORE, 2783CASE_IGNORE, 2784CASE_IGNORE, 2785/* 0x80 0x81 0x82 0x83 */ 2786CASE_IGNORE, 2787CASE_IGNORE, 2788CASE_IGNORE, 2789CASE_IGNORE, 2790/* 0x84 0x85 0x86 0x87 */ 2791CASE_IGNORE, 2792CASE_IGNORE, 2793CASE_IGNORE, 2794CASE_IGNORE, 2795/* 0x88 0x89 0x8a 0x8b */ 2796CASE_IGNORE, 2797CASE_IGNORE, 2798CASE_IGNORE, 2799CASE_IGNORE, 2800/* 0x8c 0x8d 0x8e 0x8f */ 2801CASE_IGNORE, 2802CASE_IGNORE, 2803CASE_IGNORE, 2804CASE_IGNORE, 2805/* 0x90 0x91 0x92 0x93 */ 2806CASE_IGNORE, 2807CASE_IGNORE, 2808CASE_IGNORE, 2809CASE_IGNORE, 2810/* 0x94 0x95 0x96 0x97 */ 2811CASE_IGNORE, 2812CASE_IGNORE, 2813CASE_IGNORE, 2814CASE_IGNORE, 2815/* 0x99 0x99 0x9a 0x9b */ 2816CASE_IGNORE, 2817CASE_IGNORE, 2818CASE_IGNORE, 2819CASE_IGNORE, 2820/* 0x9c 0x9d 0x9e 0x9f */ 2821CASE_IGNORE, 2822CASE_IGNORE, 2823CASE_IGNORE, 2824CASE_IGNORE, 2825/* nobreakspace exclamdown cent sterling */ 2826CASE_GROUND_STATE, 2827CASE_GROUND_STATE, 2828CASE_GROUND_STATE, 2829CASE_GROUND_STATE, 2830/* currency yen brokenbar section */ 2831CASE_GROUND_STATE, 2832CASE_GROUND_STATE, 2833CASE_GROUND_STATE, 2834CASE_GROUND_STATE, 2835/* diaeresis copyright ordfeminine guillemotleft */ 2836CASE_GROUND_STATE, 2837CASE_GROUND_STATE, 2838CASE_GROUND_STATE, 2839CASE_GROUND_STATE, 2840/* notsign hyphen registered macron */ 2841CASE_GROUND_STATE, 2842CASE_GROUND_STATE, 2843CASE_GROUND_STATE, 2844CASE_GROUND_STATE, 2845/* degree plusminus twosuperior threesuperior */ 2846CASE_GROUND_STATE, 2847CASE_GROUND_STATE, 2848CASE_GROUND_STATE, 2849CASE_GROUND_STATE, 2850/* acute mu paragraph periodcentered */ 2851CASE_GROUND_STATE, 2852CASE_GROUND_STATE, 2853CASE_GROUND_STATE, 2854CASE_GROUND_STATE, 2855/* cedilla onesuperior masculine guillemotright */ 2856CASE_GROUND_STATE, 2857CASE_GROUND_STATE, 2858CASE_GROUND_STATE, 2859CASE_GROUND_STATE, 2860/* onequarter onehalf threequarters questiondown */ 2861CASE_GROUND_STATE, 2862CASE_GROUND_STATE, 2863CASE_GROUND_STATE, 2864CASE_GROUND_STATE, 2865/* Agrave Aacute Acircumflex Atilde */ 2866CASE_GROUND_STATE, 2867CASE_GROUND_STATE, 2868CASE_GROUND_STATE, 2869CASE_GROUND_STATE, 2870/* Adiaeresis Aring AE Ccedilla */ 2871CASE_GROUND_STATE, 2872CASE_GROUND_STATE, 2873CASE_GROUND_STATE, 2874CASE_GROUND_STATE, 2875/* Egrave Eacute Ecircumflex Ediaeresis */ 2876CASE_GROUND_STATE, 2877CASE_GROUND_STATE, 2878CASE_GROUND_STATE, 2879CASE_GROUND_STATE, 2880/* Igrave Iacute Icircumflex Idiaeresis */ 2881CASE_GROUND_STATE, 2882CASE_GROUND_STATE, 2883CASE_GROUND_STATE, 2884CASE_GROUND_STATE, 2885/* Eth Ntilde Ograve Oacute */ 2886CASE_GROUND_STATE, 2887CASE_GROUND_STATE, 2888CASE_GROUND_STATE, 2889CASE_GROUND_STATE, 2890/* Ocircumflex Otilde Odiaeresis multiply */ 2891CASE_GROUND_STATE, 2892CASE_GROUND_STATE, 2893CASE_GROUND_STATE, 2894CASE_GROUND_STATE, 2895/* Ooblique Ugrave Uacute Ucircumflex */ 2896CASE_GROUND_STATE, 2897CASE_GROUND_STATE, 2898CASE_GROUND_STATE, 2899CASE_GROUND_STATE, 2900/* Udiaeresis Yacute Thorn ssharp */ 2901CASE_GROUND_STATE, 2902CASE_GROUND_STATE, 2903CASE_GROUND_STATE, 2904CASE_GROUND_STATE, 2905/* agrave aacute acircumflex atilde */ 2906CASE_GROUND_STATE, 2907CASE_GROUND_STATE, 2908CASE_GROUND_STATE, 2909CASE_GROUND_STATE, 2910/* adiaeresis aring ae ccedilla */ 2911CASE_GROUND_STATE, 2912CASE_GROUND_STATE, 2913CASE_GROUND_STATE, 2914CASE_GROUND_STATE, 2915/* egrave eacute ecircumflex ediaeresis */ 2916CASE_GROUND_STATE, 2917CASE_GROUND_STATE, 2918CASE_GROUND_STATE, 2919CASE_GROUND_STATE, 2920/* igrave iacute icircumflex idiaeresis */ 2921CASE_GROUND_STATE, 2922CASE_GROUND_STATE, 2923CASE_GROUND_STATE, 2924CASE_GROUND_STATE, 2925/* eth ntilde ograve oacute */ 2926CASE_GROUND_STATE, 2927CASE_GROUND_STATE, 2928CASE_GROUND_STATE, 2929CASE_GROUND_STATE, 2930/* ocircumflex otilde odiaeresis division */ 2931CASE_GROUND_STATE, 2932CASE_GROUND_STATE, 2933CASE_GROUND_STATE, 2934CASE_GROUND_STATE, 2935/* oslash ugrave uacute ucircumflex */ 2936CASE_GROUND_STATE, 2937CASE_GROUND_STATE, 2938CASE_GROUND_STATE, 2939CASE_GROUND_STATE, 2940/* udiaeresis yacute thorn ydiaeresis */ 2941CASE_GROUND_STATE, 2942CASE_GROUND_STATE, 2943CASE_GROUND_STATE, 2944CASE_GROUND_STATE, 2945}; 2946 2947// #pragma mark ESC # - SCR table 2948int gScrTable[] = 2949{ 2950/* NUL SOH STX ETX */ 2951CASE_IGNORE, 2952CASE_IGNORE, 2953CASE_IGNORE, 2954CASE_IGNORE, 2955/* EOT ENQ ACK BEL */ 2956CASE_IGNORE, 2957CASE_IGNORE, 2958CASE_IGNORE, 2959CASE_BELL, 2960/* BS HT NL VT */ 2961CASE_BS, 2962CASE_TAB, 2963CASE_VMOT, 2964CASE_VMOT, 2965/* NP CR SO SI */ 2966CASE_VMOT, 2967CASE_CR, 2968CASE_LS1, 2969CASE_LS0, 2970/* DLE DC1 DC2 DC3 */ 2971CASE_IGNORE, 2972CASE_IGNORE, 2973CASE_IGNORE, 2974CASE_IGNORE, 2975/* DC4 NAK SYN ETB */ 2976CASE_IGNORE, 2977CASE_IGNORE, 2978CASE_IGNORE, 2979CASE_IGNORE, 2980/* CAN EM SUB ESC */ 2981CASE_IGNORE, 2982CASE_IGNORE, 2983CASE_IGNORE, 2984CASE_ESC, 2985/* FS GS RS US */ 2986CASE_IGNORE, 2987CASE_IGNORE, 2988CASE_IGNORE, 2989CASE_IGNORE, 2990/* SP ! " # */ 2991CASE_ESC_IGNORE, 2992CASE_ESC_IGNORE, 2993CASE_ESC_IGNORE, 2994CASE_ESC_IGNORE, 2995/* $ % & ' */ 2996CASE_ESC_IGNORE, 2997CASE_ESC_IGNORE, 2998CASE_ESC_IGNORE, 2999CASE_ESC_IGNORE, 3000/* ( ) * + */ 3001CASE_ESC_IGNORE, 3002CASE_ESC_IGNORE, 3003CASE_ESC_IGNORE, 3004CASE_ESC_IGNORE, 3005/* , - . / */ 3006CASE_ESC_IGNORE, 3007CASE_ESC_IGNORE, 3008CASE_ESC_IGNORE, 3009CASE_ESC_IGNORE, 3010/* 0 1 2 3 */ 3011CASE_GROUND_STATE, 3012CASE_GROUND_STATE, 3013CASE_GROUND_STATE, 3014CASE_GROUND_STATE, 3015/* 4 5 6 7 */ 3016CASE_GROUND_STATE, 3017CASE_GROUND_STATE, 3018CASE_GROUND_STATE, 3019CASE_GROUND_STATE, 3020/* 8 9 : ; */ 3021CASE_DECALN, 3022CASE_GROUND_STATE, 3023CASE_GROUND_STATE, 3024CASE_GROUND_STATE, 3025/* < = > ? */ 3026CASE_GROUND_STATE, 3027CASE_GROUND_STATE, 3028CASE_GROUND_STATE, 3029CASE_GROUND_STATE, 3030/* @ A B C */ 3031CASE_GROUND_STATE, 3032CASE_GROUND_STATE, 3033CASE_GROUND_STATE, 3034CASE_GROUND_STATE, 3035/* D E F G */ 3036CASE_GROUND_STATE, 3037CASE_GROUND_STATE, 3038CASE_GROUND_STATE, 3039CASE_GROUND_STATE, 3040/* H I J K */ 3041CASE_GROUND_STATE, 3042CASE_GROUND_STATE, 3043CASE_GROUND_STATE, 3044CASE_GROUND_STATE, 3045/* L M N O */ 3046CASE_GROUND_STATE, 3047CASE_GROUND_STATE, 3048CASE_GROUND_STATE, 3049CASE_GROUND_STATE, 3050/* P Q R S */ 3051CASE_GROUND_STATE, 3052CASE_GROUND_STATE, 3053CASE_GROUND_STATE, 3054CASE_GROUND_STATE, 3055/* T U V W */ 3056CASE_GROUND_STATE, 3057CASE_GROUND_STATE, 3058CASE_GROUND_STATE, 3059CASE_GROUND_STATE, 3060/* X Y Z [ */ 3061CASE_GROUND_STATE, 3062CASE_GROUND_STATE, 3063CASE_GROUND_STATE, 3064CASE_GROUND_STATE, 3065/* \ ] ^ _ */ 3066CASE_GROUND_STATE, 3067CASE_GROUND_STATE, 3068CASE_GROUND_STATE, 3069CASE_GROUND_STATE, 3070/* ` a b c */ 3071CASE_GROUND_STATE, 3072CASE_GROUND_STATE, 3073CASE_GROUND_STATE, 3074CASE_GROUND_STATE, 3075/* d e f g */ 3076CASE_GROUND_STATE, 3077CASE_GROUND_STATE, 3078CASE_GROUND_STATE, 3079CASE_GROUND_STATE, 3080/* h i j k */ 3081CASE_GROUND_STATE, 3082CASE_GROUND_STATE, 3083CASE_GROUND_STATE, 3084CASE_GROUND_STATE, 3085/* l m n o */ 3086CASE_GROUND_STATE, 3087CASE_GROUND_STATE, 3088CASE_GROUND_STATE, 3089CASE_GROUND_STATE, 3090/* p q r s */ 3091CASE_GROUND_STATE, 3092CASE_GROUND_STATE, 3093CASE_GROUND_STATE, 3094CASE_GROUND_STATE, 3095/* t u v w */ 3096CASE_GROUND_STATE, 3097CASE_GROUND_STATE, 3098CASE_GROUND_STATE, 3099CASE_GROUND_STATE, 3100/* x y z { */ 3101CASE_GROUND_STATE, 3102CASE_GROUND_STATE, 3103CASE_GROUND_STATE, 3104CASE_GROUND_STATE, 3105/* | } ~ DEL */ 3106CASE_GROUND_STATE, 3107CASE_GROUND_STATE, 3108CASE_GROUND_STATE, 3109CASE_GROUND_STATE, 3110/* 0x80 0x81 0x82 0x83 */ 3111CASE_IGNORE, 3112CASE_IGNORE, 3113CASE_IGNORE, 3114CASE_IGNORE, 3115/* 0x84 0x85 0x86 0x87 */ 3116CASE_IGNORE, 3117CASE_IGNORE, 3118CASE_IGNORE, 3119CASE_IGNORE, 3120/* 0x88 0x89 0x8a 0x8b */ 3121CASE_IGNORE, 3122CASE_IGNORE, 3123CASE_IGNORE, 3124CASE_IGNORE, 3125/* 0x8c 0x8d 0x8e 0x8f */ 3126CASE_IGNORE, 3127CASE_IGNORE, 3128CASE_IGNORE, 3129CASE_IGNORE, 3130/* 0x90 0x91 0x92 0x93 */ 3131CASE_IGNORE, 3132CASE_IGNORE, 3133CASE_IGNORE, 3134CASE_IGNORE, 3135/* 0x94 0x95 0x96 0x97 */ 3136CASE_IGNORE, 3137CASE_IGNORE, 3138CASE_IGNORE, 3139CASE_IGNORE, 3140/* 0x99 0x99 0x9a 0x9b */ 3141CASE_IGNORE, 3142CASE_IGNORE, 3143CASE_IGNORE, 3144CASE_IGNORE, 3145/* 0x9c 0x9d 0x9e 0x9f */ 3146CASE_IGNORE, 3147CASE_IGNORE, 3148CASE_IGNORE, 3149CASE_IGNORE, 3150/* nobreakspace exclamdown cent sterling */ 3151CASE_GROUND_STATE, 3152CASE_GROUND_STATE, 3153CASE_GROUND_STATE, 3154CASE_GROUND_STATE, 3155/* currency yen brokenbar section */ 3156CASE_GROUND_STATE, 3157CASE_GROUND_STATE, 3158CASE_GROUND_STATE, 3159CASE_GROUND_STATE, 3160/* diaeresis copyright ordfeminine guillemotleft */ 3161CASE_GROUND_STATE, 3162CASE_GROUND_STATE, 3163CASE_GROUND_STATE, 3164CASE_GROUND_STATE, 3165/* notsign hyphen registered macron */ 3166CASE_GROUND_STATE, 3167CASE_GROUND_STATE, 3168CASE_GROUND_STATE, 3169CASE_GROUND_STATE, 3170/* degree plusminus twosuperior threesuperior */ 3171CASE_GROUND_STATE, 3172CASE_GROUND_STATE, 3173CASE_GROUND_STATE, 3174CASE_GROUND_STATE, 3175/* acute mu paragraph periodcentered */ 3176CASE_GROUND_STATE, 3177CASE_GROUND_STATE, 3178CASE_GROUND_STATE, 3179CASE_GROUND_STATE, 3180/* cedilla onesuperior masculine guillemotright */ 3181CASE_GROUND_STATE, 3182CASE_GROUND_STATE, 3183CASE_GROUND_STATE, 3184CASE_GROUND_STATE, 3185/* onequarter onehalf threequarters questiondown */ 3186CASE_GROUND_STATE, 3187CASE_GROUND_STATE, 3188CASE_GROUND_STATE, 3189CASE_GROUND_STATE, 3190/* Agrave Aacute Acircumflex Atilde */ 3191CASE_GROUND_STATE, 3192CASE_GROUND_STATE, 3193CASE_GROUND_STATE, 3194CASE_GROUND_STATE, 3195/* Adiaeresis Aring AE Ccedilla */ 3196CASE_GROUND_STATE, 3197CASE_GROUND_STATE, 3198CASE_GROUND_STATE, 3199CASE_GROUND_STATE, 3200/* Egrave Eacute Ecircumflex Ediaeresis */ 3201CASE_GROUND_STATE, 3202CASE_GROUND_STATE, 3203CASE_GROUND_STATE, 3204CASE_GROUND_STATE, 3205/* Igrave Iacute Icircumflex Idiaeresis */ 3206CASE_GROUND_STATE, 3207CASE_GROUND_STATE, 3208CASE_GROUND_STATE, 3209CASE_GROUND_STATE, 3210/* Eth Ntilde Ograve Oacute */ 3211CASE_GROUND_STATE, 3212CASE_GROUND_STATE, 3213CASE_GROUND_STATE, 3214CASE_GROUND_STATE, 3215/* Ocircumflex Otilde Odiaeresis multiply */ 3216CASE_GROUND_STATE, 3217CASE_GROUND_STATE, 3218CASE_GROUND_STATE, 3219CASE_GROUND_STATE, 3220/* Ooblique Ugrave Uacute Ucircumflex */ 3221CASE_GROUND_STATE, 3222CASE_GROUND_STATE, 3223CASE_GROUND_STATE, 3224CASE_GROUND_STATE, 3225/* Udiaeresis Yacute Thorn ssharp */ 3226CASE_GROUND_STATE, 3227CASE_GROUND_STATE, 3228CASE_GROUND_STATE, 3229CASE_GROUND_STATE, 3230/* agrave aacute acircumflex atilde */ 3231CASE_GROUND_STATE, 3232CASE_GROUND_STATE, 3233CASE_GROUND_STATE, 3234CASE_GROUND_STATE, 3235/* adiaeresis aring ae ccedilla */ 3236CASE_GROUND_STATE, 3237CASE_GROUND_STATE, 3238CASE_GROUND_STATE, 3239CASE_GROUND_STATE, 3240/* egrave eacute ecircumflex ediaeresis */ 3241CASE_GROUND_STATE, 3242CASE_GROUND_STATE, 3243CASE_GROUND_STATE, 3244CASE_GROUND_STATE, 3245/* igrave iacute icircumflex idiaeresis */ 3246CASE_GROUND_STATE, 3247CASE_GROUND_STATE, 3248CASE_GROUND_STATE, 3249CASE_GROUND_STATE, 3250/* eth ntilde ograve oacute */ 3251CASE_GROUND_STATE, 3252CASE_GROUND_STATE, 3253CASE_GROUND_STATE, 3254CASE_GROUND_STATE, 3255/* ocircumflex otilde odiaeresis division */ 3256CASE_GROUND_STATE, 3257CASE_GROUND_STATE, 3258CASE_GROUND_STATE, 3259CASE_GROUND_STATE, 3260/* oslash ugrave uacute ucircumflex */ 3261CASE_GROUND_STATE, 3262CASE_GROUND_STATE, 3263CASE_GROUND_STATE, 3264CASE_GROUND_STATE, 3265/* udiaeresis yacute thorn ydiaeresis */ 3266CASE_GROUND_STATE, 3267CASE_GROUND_STATE, 3268CASE_GROUND_STATE, 3269CASE_GROUND_STATE, 3270}; 3271 3272// #pragma mark Shift-JIS ground table 3273int gSJISGroundTable[] = 3274{ 3275/* NUL SOH STX ETX */ 3276CASE_IGNORE, 3277CASE_IGNORE, 3278CASE_IGNORE, 3279CASE_IGNORE, 3280/* EOT ENQ ACK BEL */ 3281CASE_IGNORE, 3282CASE_IGNORE, 3283CASE_IGNORE, 3284CASE_BELL, 3285/* BS HT NL VT */ 3286CASE_BS, 3287CASE_TAB, 3288CASE_LF, 3289CASE_LF, /*CASE_UP,*/ 3290/* NP CR SO SI */ 3291CASE_LF, /*CASE_IGNORE,*/ 3292CASE_CR, 3293CASE_LS1, 3294CASE_LS0, 3295/* DLE DC1 DC2 DC3 */ 3296CASE_IGNORE, 3297CASE_IGNORE, 3298CASE_IGNORE, 3299CASE_IGNORE, 3300/* DC4 NAK SYN ETB */ 3301CASE_IGNORE, 3302CASE_IGNORE, 3303CASE_IGNORE, 3304CASE_IGNORE, 3305/* CAN EM SUB ESC */ 3306CASE_IGNORE, 3307CASE_IGNORE, 3308CASE_IGNORE, 3309CASE_ESC, 3310/* FS GS RS US */ 3311CASE_IGNORE, 3312CASE_IGNORE, 3313CASE_IGNORE, 3314CASE_IGNORE, 3315/* SP ! " # */ 3316CASE_PRINT, 3317CASE_PRINT, 3318CASE_PRINT, 3319CASE_PRINT, 3320/* $ % & ' */ 3321CASE_PRINT, 3322CASE_PRINT, 3323CASE_PRINT, 3324CASE_PRINT, 3325/* ( ) * + */ 3326CASE_PRINT, 3327CASE_PRINT, 3328CASE_PRINT, 3329CASE_PRINT, 3330/* , - . / */ 3331CASE_PRINT, 3332CASE_PRINT, 3333CASE_PRINT, 3334CASE_PRINT, 3335/* 0 1 2 3 */ 3336CASE_PRINT, 3337CASE_PRINT, 3338CASE_PRINT, 3339CASE_PRINT, 3340/* 4 5 6 7 */ 3341CASE_PRINT, 3342CASE_PRINT, 3343CASE_PRINT, 3344CASE_PRINT, 3345/* 8 9 : ; */ 3346CASE_PRINT, 3347CASE_PRINT, 3348CASE_PRINT, 3349CASE_PRINT, 3350/* < = > ? */ 3351CASE_PRINT, 3352CASE_PRINT, 3353CASE_PRINT, 3354CASE_PRINT, 3355/* @ A B C */ 3356CASE_PRINT, 3357CASE_PRINT, 3358CASE_PRINT, 3359CASE_PRINT, 3360/* D E F G */ 3361CASE_PRINT, 3362CASE_PRINT, 3363CASE_PRINT, 3364CASE_PRINT, 3365/* H I J K */ 3366CASE_PRINT, 3367CASE_PRINT, 3368CASE_PRINT, 3369CASE_PRINT, 3370/* L M N O */ 3371CASE_PRINT, 3372CASE_PRINT, 3373CASE_PRINT, 3374CASE_PRINT, 3375/* P Q R S */ 3376CASE_PRINT, 3377CASE_PRINT, 3378CASE_PRINT, 3379CASE_PRINT, 3380/* T U V W */ 3381CASE_PRINT, 3382CASE_PRINT, 3383CASE_PRINT, 3384CASE_PRINT, 3385/* X Y Z [ */ 3386CASE_PRINT, 3387CASE_PRINT, 3388CASE_PRINT, 3389CASE_PRINT, 3390/* \ ] ^ _ */ 3391CASE_PRINT, 3392CASE_PRINT, 3393CASE_PRINT, 3394CASE_PRINT, 3395/* ` a b c */ 3396CASE_PRINT, 3397CASE_PRINT, 3398CASE_PRINT, 3399CASE_PRINT, 3400/* d e f g */ 3401CASE_PRINT, 3402CASE_PRINT, 3403CASE_PRINT, 3404CASE_PRINT, 3405/* h i j k */ 3406CASE_PRINT, 3407CASE_PRINT, 3408CASE_PRINT, 3409CASE_PRINT, 3410/* l m n o */ 3411CASE_PRINT, 3412CASE_PRINT, 3413CASE_PRINT, 3414CASE_PRINT, 3415/* p q r s */ 3416CASE_PRINT, 3417CASE_PRINT, 3418CASE_PRINT, 3419CASE_PRINT, 3420/* t u v w */ 3421CASE_PRINT, 3422CASE_PRINT, 3423CASE_PRINT, 3424CASE_PRINT, 3425/* x y z { */ 3426CASE_PRINT, 3427CASE_PRINT, 3428CASE_PRINT, 3429CASE_PRINT, 3430/* | } ~ DEL */ 3431CASE_PRINT, 3432CASE_PRINT, 3433CASE_PRINT, 3434CASE_PRINT, 3435/* 0x80 0x81 0x82 0x83 */ 3436CASE_SJIS_INSTRING, 3437CASE_SJIS_INSTRING, 3438CASE_SJIS_INSTRING, 3439CASE_SJIS_INSTRING, 3440/* 0x84 0x85 0x86 0x87 */ 3441CASE_SJIS_INSTRING, 3442CASE_SJIS_INSTRING, 3443CASE_SJIS_INSTRING, 3444CASE_SJIS_INSTRING, 3445/* 0x88 0x89 0x8a 0x8b */ 3446CASE_SJIS_INSTRING, 3447CASE_SJIS_INSTRING, 3448CASE_SJIS_INSTRING, 3449CASE_SJIS_INSTRING, 3450/* 0x8c 0x8d 0x8e 0x8f */ 3451CASE_SJIS_INSTRING, 3452CASE_SJIS_INSTRING, 3453CASE_SJIS_INSTRING, 3454CASE_SJIS_INSTRING, 3455/* 0x90 0x91 0x92 0x93 */ 3456CASE_SJIS_INSTRING, 3457CASE_SJIS_INSTRING, 3458CASE_SJIS_INSTRING, 3459CASE_SJIS_INSTRING, 3460/* 0x94 0x95 0x96 0x97 */ 3461CASE_SJIS_INSTRING, 3462CASE_SJIS_INSTRING, 3463CASE_SJIS_INSTRING, 3464CASE_SJIS_INSTRING, 3465/* 0x99 0x99 0x9a 0x9b */ 3466CASE_SJIS_INSTRING, 3467CASE_SJIS_INSTRING, 3468CASE_SJIS_INSTRING, 3469CASE_SJIS_INSTRING, 3470/* 0x9c 0x9d 0x9e 0x9f */ 3471CASE_SJIS_INSTRING, 3472CASE_SJIS_INSTRING, 3473CASE_SJIS_INSTRING, 3474CASE_SJIS_INSTRING, 3475/* 0xa0 0xa1 0xa2 0xa3 */ 3476CASE_SJIS_KANA, 3477CASE_SJIS_KANA, 3478CASE_SJIS_KANA, 3479CASE_SJIS_KANA, 3480/* 0xa4 0xa5 0xa6 0xa7 */ 3481CASE_SJIS_KANA, 3482CASE_SJIS_KANA, 3483CASE_SJIS_KANA, 3484CASE_SJIS_KANA, 3485/* 0xa8 0xa9 0xaa 0xab */ 3486CASE_SJIS_KANA, 3487CASE_SJIS_KANA, 3488CASE_SJIS_KANA, 3489CASE_SJIS_KANA, 3490/* 0xac 0xad 0xae 0xaf */ 3491CASE_SJIS_KANA, 3492CASE_SJIS_KANA, 3493CASE_SJIS_KANA, 3494CASE_SJIS_KANA, 3495/* 0xb0 0xb1 0xb2 0xb3 */ 3496CASE_SJIS_KANA, 3497CASE_SJIS_KANA, 3498CASE_SJIS_KANA, 3499CASE_SJIS_KANA, 3500/* 0xb4 0xb5 0xb6 0xb7 */ 3501CASE_SJIS_KANA, 3502CASE_SJIS_KANA, 3503CASE_SJIS_KANA, 3504CASE_SJIS_KANA, 3505/* 0xb8 0xb9 0xba 0xbb */ 3506CASE_SJIS_KANA, 3507CASE_SJIS_KANA, 3508CASE_SJIS_KANA, 3509CASE_SJIS_KANA, 3510/* 0xbc 0xbd 0xbe 0xbf */ 3511CASE_SJIS_KANA, 3512CASE_SJIS_KANA, 3513CASE_SJIS_KANA, 3514CASE_SJIS_KANA, 3515/* 0xc0 0xc1 0xc2 0xc3 */ 3516CASE_SJIS_KANA, 3517CASE_SJIS_KANA, 3518CASE_SJIS_KANA, 3519CASE_SJIS_KANA, 3520/* 0xc4 0xc5 0xc6 0xc7 */ 3521CASE_SJIS_KANA, 3522CASE_SJIS_KANA, 3523CASE_SJIS_KANA, 3524CASE_SJIS_KANA, 3525/* 0xc8 0xc9 0xca 0xcb */ 3526CASE_SJIS_KANA, 3527CASE_SJIS_KANA, 3528CASE_SJIS_KANA, 3529CASE_SJIS_KANA, 3530/* 0xcc 0xcd 0xce 0xcf */ 3531CASE_SJIS_KANA, 3532CASE_SJIS_KANA, 3533CASE_SJIS_KANA, 3534CASE_SJIS_KANA, 3535/* 0xd0 0xd1 0xd2 0xd3 */ 3536CASE_SJIS_KANA, 3537CASE_SJIS_KANA, 3538CASE_SJIS_KANA, 3539CASE_SJIS_KANA, 3540/* 0xd4 0xd5 0xd6 0xd7 */ 3541CASE_SJIS_KANA, 3542CASE_SJIS_KANA, 3543CASE_SJIS_KANA, 3544CASE_SJIS_KANA, 3545/* 0xd8 0xd9 0xda 0xdb */ 3546CASE_SJIS_KANA, 3547CASE_SJIS_KANA, 3548CASE_SJIS_KANA, 3549CASE_SJIS_KANA, 3550/* 0xdc 0xdd 0xde 0xdf */ 3551CASE_SJIS_KANA, 3552CASE_SJIS_KANA, 3553CASE_SJIS_KANA, 3554CASE_SJIS_KANA, 3555/* 0xe0 0xe1 0xe2 0xe3 */ 3556CASE_SJIS_INSTRING, 3557CASE_SJIS_INSTRING, 3558CASE_SJIS_INSTRING, 3559CASE_SJIS_INSTRING, 3560/* 0xe4 0xe5 0xe6 0xe7 */ 3561CASE_SJIS_INSTRING, 3562CASE_SJIS_INSTRING, 3563CASE_SJIS_INSTRING, 3564CASE_SJIS_INSTRING, 3565/* 0xe8 0xe9 0xea 0xeb */ 3566CASE_SJIS_INSTRING, 3567CASE_SJIS_INSTRING, 3568CASE_SJIS_INSTRING, 3569CASE_SJIS_INSTRING, 3570/* 0xec 0xed 0xee 0xef */ 3571CASE_SJIS_INSTRING, 3572CASE_SJIS_INSTRING, 3573CASE_SJIS_INSTRING, 3574CASE_SJIS_INSTRING, 3575/* 0xf0 0xf1 0xf2 0xf3 */ 3576CASE_SJIS_INSTRING, 3577CASE_SJIS_INSTRING, 3578CASE_SJIS_INSTRING, 3579CASE_SJIS_INSTRING, 3580/* 0xf4 0xf5 0xf6 0xf7 */ 3581CASE_SJIS_INSTRING, 3582CASE_SJIS_INSTRING, 3583CASE_SJIS_INSTRING, 3584CASE_SJIS_INSTRING, 3585/* 0xf8 0xf9 0xfa 0xfb */ 3586CASE_SJIS_INSTRING, 3587CASE_SJIS_INSTRING, 3588CASE_SJIS_INSTRING, 3589CASE_SJIS_INSTRING, 3590/* 0xfc 0xfd 0xfe 0xff */ 3591CASE_SJIS_INSTRING, 3592CASE_SJIS_INSTRING, 3593CASE_SJIS_INSTRING, 3594CASE_SJIS_INSTRING, 3595}; 3596 3597/* 3598 * 94/96 alternative character sets for G0-G3 3599 * 3600 * - characters to replace are UTF-8 literals 3601 * - NULL mean falling through to corresponding ASCII chars 3602 * 3603 */ 3604 3605/* DEC Special Graphic Character Set - mix of xterm 3606 definitions and ncurses extended characters (ACS_) */ 3607const char* gLineDrawGraphSet[96] = 3608{ 3609// SP ! " # 3610NULL, 3611NULL, 3612NULL, 3613NULL, 3614 3615// $ % & ' 3616NULL, 3617NULL, 3618NULL, 3619NULL, 3620 3621// ( ) * + 3622NULL, 3623NULL, 3624NULL, 3625"\xE2\x86\x92", // ACS_RARROW 3626 3627// , - . / 3628"\xE2\x86\x90", // ACS_LARROW 3629"\xE2\x86\x91", // ACS_UARROW 3630"\xE2\x86\x93", // ACS_DARROW 3631NULL, 3632 3633// 0 1 2 3 3634"\xE2\x96\xAE", // ACS_BLOCK 3635NULL, 3636NULL, 3637NULL, 3638 3639// 4 5 6 7 3640NULL, 3641NULL, 3642NULL, 3643NULL, 3644 3645// 8 9 : ; 3646NULL, 3647NULL, 3648NULL, 3649NULL, 3650 3651// < = > ? 3652NULL, 3653NULL, 3654NULL, 3655NULL, 3656 3657// @ A B C 3658NULL, 3659NULL, 3660NULL, 3661NULL, 3662 3663// D E F G 3664NULL, 3665NULL, 3666NULL, 3667NULL, 3668 3669// H I J K 3670NULL, 3671NULL, 3672NULL, 3673NULL, 3674 3675// L M N O 3676NULL, 3677NULL, 3678NULL, 3679NULL, 3680 3681// P Q R S 3682NULL, 3683NULL, 3684NULL, 3685NULL, 3686 3687// T U V W 3688NULL, 3689NULL, 3690NULL, 3691NULL, 3692 3693// X Y Z [ 3694NULL, 3695NULL, 3696NULL, 3697NULL, 3698// \ ] ^ _ 3699NULL, 3700NULL, 3701NULL, 3702"\xE2\x96\xAE", // xterm: black vertical rectangle 3703 3704// ` a b c 3705"\xE2\x97\x86", // ACS_DIAMOND 3706"\xE2\x96\x92", // ACS_CKBOARD 3707"\xE2\x90\x89", // xterm:symbol for horizontal tabulation 3708"\xE2\x90\x8C", // xterm:symbol for form feed 3709 3710// d e f g 3711"\xE2\x90\x8D", // xterm:symbol for carriage return 3712"\xE2\x90\x8A", // xterm:symbol for line feed 3713"\xC2\xB0", // ACS_DEGREE 3714"\xC2\xB1", // ACS_PLMINUS 3715 3716// h i j k 3717"\xE2\x90\xA4", // xterm:symbol for newline (ACS_BOARD) 3718"\xE2\x98\x83", // ACS_LANTERN (xterm:symbol for vert.tab: \xE2\x90\x8B) 3719"\xE2\x94\x98", // ACS_LRCORNER 3720"\xE2\x94\x90", // ACS_URCORNER 3721 3722// l m n o 3723"\xE2\x94\x8C", // ACS_ULCORNER 3724"\xE2\x94\x94", // ACS_LLCORNER 3725"\xE2\x94\xBC", // ACS_PLUS 3726"\xE2\x8E\xBA", // ACS_S1 3727 3728// p q r s 3729"\xE2\x8E\xBB", // ACS_S3 3730"\xE2\x94\x80", // ACS_HLINE 3731"\xE2\x8E\xBC", // ACS_S7 3732"\xE2\x8E\xBD", // ACS_S9 3733 3734// t u v w 3735"\xE2\x94\x9C", // ACS_LTEE 3736"\xE2\x94\xA4", // ACS_RTEE 3737"\xE2\x94\xB4", // ACS_BTEE 3738"\xE2\x94\xAC", // ACS_TTEE 3739 3740// x y z { 3741"\xE2\x94\x82", // ACS_VLINE 3742"\xE2\x89\xA4", // ACS_LEQUAL 3743"\xE2\x89\xA5", // ACS_GEQUAL 3744"\xCF\x80", // ACS_PI 3745 3746// | } ~ DEL 3747"\xE2\x89\xA0", // ACS_NEQUAL 3748"\xC2\xA3", // ACS_STERLING 3749"\xC2\xB7", // ACS_BULLET 3750NULL 3751}; 3752