#
# Copyright (C) 2005 by Yasushi Saito (yasushi.saito@gmail.com)
# 
# Cxxchecker is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation; either version 2, or (at your option) any
# later version.
#
# Cxxchecker is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
# for more details.
#
# The regular expression for admissible class names.
REGEX_CLASS = '[A-Z][A-Za-z\d]*$'

# The regular expression for admissible typedef names.
REGEX_TYPE_NAME = REGEX_CLASS

# The regular expression for admissible namespace names.
REGEX_NAMESPACE = '[a-z0-9]+$'

# The regular expression for non-static member functions.
REGEX_BOUND_METHOD = '[a-z][A-Za-z\d]*$'

# The regular expression for data members functions.
REGEX_DATA_MEMBER = '[a-z][A-Za-z\d]*_$'

# The regular expression for static data members.
REGEX_STATIC_DATA_MEMBER = '[a-z][A-Za-z\d]*_s$'

# The regular expression for global variables
REGEX_GLOBAL_VARIABLE = '[a-z][A-Za-z\d]*_g$'

# The regular expression for static member functions.
REGEX_STATIC_METHOD = '[A-Z][a-zA-Z\d_]*$'

# The regular expression for standalong functions
REGEX_FUNCTION = REGEX_STATIC_METHOD

# The regular expression for enum tags.
REGEX_ENUM_TAG = '[A-Z][A-Z\d_]*$'

# The regular expression for static const data members.
REGEX_STATIC_CONST_VARIABLE = REGEX_ENUM_TAG

# The regular expression for function formal parameters.
REGEX_ARGUMENT = '[a-z][A-Za-z\d]*$'

# The below namespaces are excluded from the style checking.
STANDARD_NAMESPACES = ("std", "boost", "::")

# The standard list of --ignored directores.
ignoredDirs = [ "<internal>", "/usr/include", "/usr/local/include",
                "/usr/local/share", "/usr/lib" ]

allWarningOptions = [
    "public-data-in-class",
    "copy-constructor",
    "public-constructor-in-base-class",
    "protected-data-in-struct",
    "set-get-matching",
    "name-consistency"
    ]

# The standard warnings.
warningOptions = [
    "public-data-in-class",
    "copy-constructor",
    "public-constructor-in-base-class",
    "name-consistency"
    ]

