# Path: bslint/messages/builder.py
# class Message:
#     def __init__(self, message):
#     def get_message(self, params):


from bslint.messages import builder as build

MESSAGE_TABLE = {
    TRAILING_WHITE_SPACE: build.Message(WARNING + ": Trailing white space. Line number: {}"),
    TRAILING_COMMA_IN_OBJECTS: build.Message(WARNING + ": Trailing comma in object literal. Line number: {}"),
    COMMAS_IN_OBJECTS: build.Message(WARNING + ": Object literal name value-pair missing comma. Line number: {}"),
    LINE_LENGTH: build.Message(WARNING + ": Line length exceeds {} characters. Line number: {}"),
    FILE_ENCODING: build.Message(WARNING + ": Your files should conform to {} encoding"),
    CONSECUTIVE_EMPTY_LINES: build.Message(
        WARNING + ": Cannot have more than {} consecutive empty lines. Line number: {}"),
    UPPERCASE_VARIABLE: build.Message(WARNING + ": Variables should begin with a lowercase letter: line number: {}"),
    TAB_INDENTATION_ERROR: build.Message(WARNING + ": Tab indentation should be set to {} spaces. Line number: {}"),
    TAB_AND_SPACES: build.Message(WARNING + ": Invalid indentation, you must indent with tabs. Line number: {}"),
    TYPO_IN_CODE: build.Message(WARNING + ": You have spelling mistakes in your code. Line number: {}"),
    TRACEABLE_CODE: build.Message(WARNING + ": Print statements not allowed. Line number: {}"),
    NON_CONVENTIONAL_TODO_AND_NO_COMMENTS: build.Message(
        WARNING + ": comments must be TODOs and must follow convention. Line number: {}"),
    COMMENTS_NOT_ALLOWED: build.Message(WARNING + ": No comments allowed. Line number: {}"),
    NO_RETURN_AND_PARAMETERS_TYPES: build.Message(
        WARNING + ": No return and parameter types declared. Line number: {}"),
    NOT_CAPITALISED_VARIABLE_NAMES: build.Message(WARNING + ": Variable types must be capitalised. Line number: {}"),
    NO_SPACE_AROUND_OPERATORS: build.Message(
        WARNING + ": Operators must be surrounded by {} space(s). Line number: {}"),
    NO_SPACE_BETWEEN_METHOD_AND_PARAMETERS: build.Message(
        WARNING + ": You must put a space between method name and parameter list. Line number: {}"),
    UNMATCHED_QUOTATION_MARK: build.Message(ERROR + ": You have unmatched quotation marks at {} on line number: {}"),
    NON_CONVENTIONAL_TODO: build.Message(WARNING + ": TODOs must follow convention. Line number: {}"),
    NO_TODOS: build.Message(WARNING + ": comments must not be TODOs. Line number: {}"),
    METHOD_DECLARATION_SPACING: build.Message(WARNING + ": The spacing on the method declaration is incorrect: {}"),
    UNMATCHED_TOKEN: build.Message(ERROR + ": Unmatched tokens, expected {}, but got {}"),
    STMT_PARSING_FAILED: build.Message(ERROR + ": Parsing statement failed. Line number: {}"),

# Path: bslint/messages/builder.py
# class Message:
#     def __init__(self, message):
#     def get_message(self, params):


# Path: bslint/messages/error_constants.py
from bslint.messages import builder as build


MESSAGE_TABLE = {
    TRAILING_WHITE_SPACE: build.Message(WARNING + ": Trailing white space. Line number: {}"),
    TRAILING_COMMA_IN_OBJECTS: build.Message(WARNING + ": Trailing comma in object literal. Line number: {}"),
    COMMAS_IN_OBJECTS: build.Message(WARNING + ": Object literal name value-pair missing comma. Line number: {}"),
    LINE_LENGTH: build.Message(WARNING + ": Line length exceeds {} characters. Line number: {}"),
    FILE_ENCODING: build.Message(WARNING + ": Your files should conform to {} encoding"),
    CONSECUTIVE_EMPTY_LINES: build.Message(
        WARNING + ": Cannot have more than {} consecutive empty lines. Line number: {}"),
    UPPERCASE_VARIABLE: build.Message(WARNING + ": Variables should begin with a lowercase letter: line number: {}"),
    TAB_INDENTATION_ERROR: build.Message(WARNING + ": Tab indentation should be set to {} spaces. Line number: {}"),
    TAB_AND_SPACES: build.Message(WARNING + ": Invalid indentation, you must indent with tabs. Line number: {}"),
    TYPO_IN_CODE: build.Message(WARNING + ": You have spelling mistakes in your code. Line number: {}"),
    TRACEABLE_CODE: build.Message(WARNING + ": Print statements not allowed. Line number: {}"),
    NON_CONVENTIONAL_TODO_AND_NO_COMMENTS: build.Message(
        WARNING + ": comments must be TODOs and must follow convention. Line number: {}"),
    COMMENTS_NOT_ALLOWED: build.Message(WARNING + ": No comments allowed. Line number: {}"),
    NO_RETURN_AND_PARAMETERS_TYPES: build.Message(
        WARNING + ": No return and parameter types declared. Line number: {}"),
    NOT_CAPITALISED_VARIABLE_NAMES: build.Message(WARNING + ": Variable types must be capitalised. Line number: {}"),
    NO_SPACE_AROUND_OPERATORS: build.Message(
        WARNING + ": Operators must be surrounded by {} space(s). Line number: {}"),
    NO_SPACE_BETWEEN_METHOD_AND_PARAMETERS: build.Message(
        WARNING + ": You must put a space between method name and parameter list. Line number: {}"),
    UNMATCHED_QUOTATION_MARK: build.Message(ERROR + ": You have unmatched quotation marks at {} on line number: {}"),
    NON_CONVENTIONAL_TODO: build.Message(WARNING + ": TODOs must follow convention. Line number: {}"),
    NO_TODOS: build.Message(WARNING + ": comments must not be TODOs. Line number: {}"),
    METHOD_DECLARATION_SPACING: build.Message(WARNING + ": The spacing on the method declaration is incorrect: {}"),
    UNMATCHED_TOKEN: build.Message(ERROR + ": Unmatched tokens, expected {}, but got {}"),
    STMT_PARSING_FAILED: build.Message(ERROR + ": Parsing statement failed. Line number: {}"),

    PROGRAM_PARSING_FAILED: build.Message(ERROR + ": Parsing program failed. Line number: {}")