Warning, /include/Geant4/tools/charmanip is written in an unsupported language. File is not indexed.
0001 // Copyright (C) 2010, Guy Barrand. All rights reserved.
0002 // See the file tools.license for terms.
0003
0004 #ifndef tools_charmanip
0005 #define tools_charmanip
0006
0007 namespace tools {
0008
0009 // some char ASCII code :
0010 // \0 : 0
0011 // \n = LF : 10
0012 // \r = CR : 13
0013 // \t = HT : 9
0014 // , : 44
0015
0016 inline bool is_upper(char a_char) {
0017 // do it myself: due to problem with ctype.h and
0018 // isxxx macros on different platforms.
0019 switch(a_char) {
0020 case 'A':return true;
0021 case 'B':return true;
0022 case 'C':return true;
0023 case 'D':return true;
0024 case 'E':return true;
0025 case 'F':return true;
0026 case 'G':return true;
0027 case 'H':return true;
0028 case 'I':return true;
0029 case 'J':return true;
0030 case 'K':return true;
0031 case 'L':return true;
0032 case 'M':return true;
0033 case 'N':return true;
0034 case 'O':return true;
0035 case 'P':return true;
0036 case 'Q':return true;
0037 case 'R':return true;
0038 case 'S':return true;
0039 case 'T':return true;
0040 case 'U':return true;
0041 case 'V':return true;
0042 case 'W':return true;
0043 case 'X':return true;
0044 case 'Y':return true;
0045 case 'Z':return true;
0046 default:return false;
0047 }
0048 return false;
0049 }
0050
0051 inline bool is_lower(char a_char) {
0052 switch(a_char) {
0053 case 'a':return true;
0054 case 'b':return true;
0055 case 'c':return true;
0056 case 'd':return true;
0057 case 'e':return true;
0058 case 'f':return true;
0059 case 'g':return true;
0060 case 'h':return true;
0061 case 'i':return true;
0062 case 'j':return true;
0063 case 'k':return true;
0064 case 'l':return true;
0065 case 'm':return true;
0066 case 'n':return true;
0067 case 'o':return true;
0068 case 'p':return true;
0069 case 'q':return true;
0070 case 'r':return true;
0071 case 's':return true;
0072 case 't':return true;
0073 case 'u':return true;
0074 case 'v':return true;
0075 case 'w':return true;
0076 case 'x':return true;
0077 case 'y':return true;
0078 case 'z':return true;
0079 default:return false;
0080 }
0081 return false;
0082 }
0083
0084 inline bool is_digit(char a_char) {
0085 switch(a_char){
0086 case '0':return true;
0087 case '1':return true;
0088 case '2':return true;
0089 case '3':return true;
0090 case '4':return true;
0091 case '5':return true;
0092 case '6':return true;
0093 case '7':return true;
0094 case '8':return true;
0095 case '9':return true;
0096 default:return false;
0097 }
0098 return false;
0099 }
0100
0101 inline bool is_letter(char a_char) {
0102 return (is_lower(a_char)||is_upper(a_char)) ? true : false;
0103 }
0104
0105 //inline bool is_alpha(char a_char) {
0106 // return (is_lower(a_char)||is_upper(a_char)||is_digit(a_char)) ? true : false;
0107 //}
0108
0109 inline bool is_printable(char a_char) {
0110 if(is_lower(a_char)||is_upper(a_char)||is_digit(a_char)) return true;
0111 switch(a_char) {
0112 case ' ':return true;
0113 case '!':return true;
0114 case '"':return true;
0115 case '#':return true;
0116 case '$':return true;
0117 case '%':return true;
0118 case '&':return true;
0119 case '\'':return true;
0120 case '(':return true;
0121 case ')':return true;
0122 case '*':return true;
0123 case '+':return true;
0124 case ',':return true;
0125 case '-':return true;
0126 case '.':return true;
0127 case '/':return true;
0128 case ':':return true;
0129 case ';':return true;
0130 case '<':return true;
0131 case '=':return true;
0132 case '>':return true;
0133 case '?':return true;
0134 case '@':return true;
0135 case '[':return true;
0136 case '\\':return true;
0137 case ']':return true;
0138 case '^':return true;
0139 case '_':return true;
0140 case '`':return true;
0141 case '{':return true;
0142 case '|':return true;
0143 case '}':return true;
0144 case '~':return true;
0145 default:return false;
0146 }
0147 return false;
0148 }
0149
0150 }
0151
0152 #endif