summaryrefslogtreecommitdiff
path: root/libcutl/cutl/compiler/cxx-indenter.ixx
blob: 74bfac33841dd60a346ceadb450d5ca91fe941f8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
// file      : cutl/compiler/cxx-indenter.ixx
// copyright : Copyright (c) 2009-2013 Code Synthesis Tools CC
// license   : MIT; see accompanying LICENSE file

namespace cutl
{
  namespace compiler
  {
    template <typename C>
    inline typename cxx_indenter<C>::char_class_type cxx_indenter<C>::
    char_class (C c)
    {
      switch (c)
      {
      case '0':
      case '1':
      case '2':
      case '3':
      case '4':
      case '5':
      case '6':
      case '7':
      case '8':
      case '9':
        return cc_digit;

      case '!':
      case '%':
      case '^':
      case '&':
      case '*':
      case '(':
      case ')':
      case '-':
      case '+':
      case '=':
      case '{':
      case '}':
      case '|':
      case '~':
      case '[':
      case ']':
      case '\\':
      case ';':
      case '\'':
      case ':':
      case '"':
      case '<':
      case '>':
      case '?':
      case ',':
      case '.':
      case '/':
        return cc_op_punc;

      case ' ':
      case '\n':
      case '\t':
      case '\f':
      case '\r':
      case '\v':
        return cc_space;

      default:
        return cc_alpha;
      }
    }
  }
}