From 29c8ce737f513766673fd3e57e30233d9fcce159 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Sun, 13 Sep 2009 14:02:04 +0200 Subject: Add C++ source code indenter --- cutl/compiler/cxx-indenter.ixx | 70 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 cutl/compiler/cxx-indenter.ixx (limited to 'cutl/compiler/cxx-indenter.ixx') diff --git a/cutl/compiler/cxx-indenter.ixx b/cutl/compiler/cxx-indenter.ixx new file mode 100644 index 0000000..fde4652 --- /dev/null +++ b/cutl/compiler/cxx-indenter.ixx @@ -0,0 +1,70 @@ +// file : cutl/compiler/cxx-indenter.ixx +// author : Boris Kolpackov +// copyright : Copyright (c) 2009 Code Synthesis Tools CC +// license : MIT; see accompanying LICENSE file + +namespace cutl +{ + namespace compiler + { + template + inline typename cxx_indenter::char_class_type cxx_indenter:: + 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; + } + } + } +} -- cgit v1.1