Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/externals/g4tools/include/tools/charmanip

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

  1 // Copyright (C) 2010, Guy Barrand. All rights reserved.
  2 // See the file tools.license for terms.
  3 
  4 #ifndef tools_charmanip
  5 #define tools_charmanip
  6 
  7 namespace tools {
  8 
  9 // some char ASCII code :
 10 // \0      : 0
 11 // \n = LF : 10
 12 // \r = CR : 13
 13 // \t = HT : 9
 14 // ,       : 44
 15 
 16 inline bool is_upper(char a_char) {
 17   // do it myself: due to problem with ctype.h and
 18   // isxxx macros on different platforms.
 19   switch(a_char) {
 20     case 'A':return true;
 21     case 'B':return true;
 22     case 'C':return true;
 23     case 'D':return true;
 24     case 'E':return true;
 25     case 'F':return true;
 26     case 'G':return true;
 27     case 'H':return true;
 28     case 'I':return true;
 29     case 'J':return true;
 30     case 'K':return true;
 31     case 'L':return true;
 32     case 'M':return true;
 33     case 'N':return true;
 34     case 'O':return true;
 35     case 'P':return true;
 36     case 'Q':return true;
 37     case 'R':return true;
 38     case 'S':return true;
 39     case 'T':return true;
 40     case 'U':return true;
 41     case 'V':return true;
 42     case 'W':return true;
 43     case 'X':return true;
 44     case 'Y':return true;
 45     case 'Z':return true;
 46     default:return false;
 47   }
 48   return false;
 49 }
 50 
 51 inline bool is_lower(char a_char) {
 52   switch(a_char) {
 53     case 'a':return true;
 54     case 'b':return true;
 55     case 'c':return true;
 56     case 'd':return true;
 57     case 'e':return true;
 58     case 'f':return true;
 59     case 'g':return true;
 60     case 'h':return true;
 61     case 'i':return true;
 62     case 'j':return true;
 63     case 'k':return true;
 64     case 'l':return true;
 65     case 'm':return true;
 66     case 'n':return true;
 67     case 'o':return true;
 68     case 'p':return true;
 69     case 'q':return true;
 70     case 'r':return true;
 71     case 's':return true;
 72     case 't':return true;
 73     case 'u':return true;
 74     case 'v':return true;
 75     case 'w':return true;
 76     case 'x':return true;
 77     case 'y':return true;
 78     case 'z':return true;
 79     default:return false;
 80   }
 81   return false;
 82 }
 83 
 84 inline bool is_digit(char a_char) {
 85   switch(a_char){
 86     case '0':return true;
 87     case '1':return true;
 88     case '2':return true;
 89     case '3':return true;
 90     case '4':return true;
 91     case '5':return true;
 92     case '6':return true;
 93     case '7':return true;
 94     case '8':return true;
 95     case '9':return true;
 96     default:return false;
 97   }
 98   return false;
 99 }
100 
101 inline bool is_letter(char a_char) {
102   return (is_lower(a_char)||is_upper(a_char)) ? true : false;
103 }
104 
105 //inline bool is_alpha(char a_char) {
106 //  return (is_lower(a_char)||is_upper(a_char)||is_digit(a_char)) ? true : false;
107 //}
108 
109 inline bool is_printable(char a_char) {
110   if(is_lower(a_char)||is_upper(a_char)||is_digit(a_char)) return true;
111   switch(a_char) {
112     case ' ':return true;
113     case '!':return true;
114     case '"':return true;
115     case '#':return true;
116     case '$':return true;
117     case '%':return true;
118     case '&':return true;
119     case '\'':return true;
120     case '(':return true;
121     case ')':return true;
122     case '*':return true;
123     case '+':return true;
124     case ',':return true;
125     case '-':return true;
126     case '.':return true;
127     case '/':return true;
128     case ':':return true;
129     case ';':return true;
130     case '<':return true;
131     case '=':return true;
132     case '>':return true;
133     case '?':return true;
134     case '@':return true;
135     case '[':return true;
136     case '\\':return true;
137     case ']':return true;
138     case '^':return true;
139     case '_':return true;
140     case '`':return true;
141     case '{':return true;
142     case '|':return true;
143     case '}':return true;
144     case '~':return true;
145     default:return false;
146   }
147   return false;
148 }
149 
150 }
151 
152 #endif