Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  tblgen.cpp   Sprache: C

 
// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html

#include "unicode/utypes.h"
#include "unicode/ucnv.h"
#include "unicode/uniset.h"
#include <stdio.h>

using icu::LocalUConverterPointer;
using icu::UnicodeSet;

static const char *kConverter = "ibm-1047";

int main(int argc, const char *argv[]) {
  printf("// %s\n", U_COPYRIGHT_STRING);
  printf("// generated by tblgen. You weren't going to edit it by hand, were you?\n");
  printf("\n");

  UErrorCode status = U_ZERO_ERROR;
  LocalUConverterPointer cnv(ucnv_open(kConverter, &status));

  if(U_FAILURE(status)) {
    fprintf(stderr, "Failed to open %s: %s\n", kConverter, u_errorName(status));
    return 1;
  }

  printf("static const char cp1047_8859_1[256] = { \n");
  for(int i=0x00; i<0x100; i++) {
    char cp1047[1];
    cp1047[0] = i;
    char16_t u[1];
    char16_t *target = u;
    const char *source = cp1047;
    ucnv_toUnicode(cnv.getAlias(), &target, u+1, &source, cp1047+1, nullptr, true, &status);
    if(U_FAILURE(status)) {
      fprintf(stderr, "Conversion failure at #%X: %s\n", i, u_errorName(status));
      return 2;
    }
    printf(" (char)0x%02X, /* %02X */\n", u[0], i);
  }
  printf("};\n\n");

  // 
  //  UnicodeSet oldIllegal("[:print:]", status); // [a-zA-Z0-9_}{#)(><%:;.?*+-/^&|~!=,\\u005b\\u005d\\u005c]", status);
  UnicodeSet oldIllegal("[0-9 a-z A-Z "
                        "_ \\{ \\} \\[ \\] # \\( \\) < > % \\: ; . "
                        "? * + \\- / \\^ \\& | ~ ! = , \\ \" ' ]", status);
  
  /*

http://www.lirmm.fr/~ducour/Doc-objets/ISO+IEC+14882-1998.pdf ( note: 1998 )   page 10, section 2.2 says:

1 The basic source character set consists of 96 characters: the space character, the control characters repre- 15)
senting horizontal tab, vertical tab, form feed, and new-line, plus the following 91 graphical characters:
a b c d e f g h i j k l m n opqrstuvwxyz
A B C D E F G H I J K L M N OPQRSTUVWXYZ
0 12 3 4 5 6 7 8 9
 _ { } [ ] # ( ) < > % : ; . ?*+-/^&|~!=,\"
2 The universal-character-name construct provides a way to name other characters. hex-quad:
hexadecimal-digit hexadecimal-digit hexadecimal-digit hexadecimal-digit
universal-character-name: \u hex-quad
\U hex-quad hex-quad
The character designated by the universal-character-name \UNNNNNNNN is that character whose character short name in ISO/IEC 10646 is NNNNNNNN; the character designated by the universal-character-name \uNNNN is that character whose character short name in ISO/IEC 10646 is 0000NNNN. If the hexadecimal value for a universal character name is less than 0x20 or in the range 0x7F-0x9F (inclusive), or if the uni- versal character name designates a character in the basic source character set, then the program is ill- formed.


So basically:  printable ASCII plus  0x00-0x1F,  0x7F-0x9F, was all illegal.

Some discussion at http://unicode.org/mail-arch/unicode-ml/y2003-m10/0471.html

   */

  


  printf("static const bool oldIllegal[256] = { \n");
  for(char16_t i=0x00; i<0x100;i++) {
    printf(" %s, /* U+%04X */\n",
           (oldIllegal.contains(i))?" true":"false",
           i);
  }
  printf("};\n\n");
  
  return 0;
}

Messung V0.5
C=90 H=81 G=85

¤ Dauer der Verarbeitung: 0.12 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge