bool parseOption(ASFormatter &formatter, const string &arg, const string &errorInfo) { if ( IS_OPTION(arg, "style=ansi") ) { formatter.setSpaceIndentation(4); formatter.setBracketFormatMode(BREAK_MODE); formatter.setBracketIndent(false); formatter.setClassIndent(false); formatter.setSwitchIndent(false); formatter.setNamespaceIndent(false); } else if ( IS_OPTION(arg, "style=gnu") ) { formatter.setSpaceIndentation(2); formatter.setBracketFormatMode(BREAK_MODE); formatter.setBlockIndent(true); formatter.setClassIndent(false); formatter.setSwitchIndent(false); formatter.setNamespaceIndent(false); } else if ( IS_OPTION(arg, "style=java") ) { // formatter.setJavaStyle(); // _modeManuallySet = true; formatter.setSpaceIndentation(4); formatter.setBracketFormatMode(ATTACH_MODE); formatter.setBracketIndent(false); formatter.setSwitchIndent(false); } else if ( IS_OPTION(arg, "style=kr") ) { //manuallySetCStyle(formatter); formatter.setSpaceIndentation(4); formatter.setBracketFormatMode(ATTACH_MODE); formatter.setBracketIndent(false); formatter.setClassIndent(false); formatter.setSwitchIndent(false); formatter.setNamespaceIndent(false); } else if ( IS_OPTION(arg, "style=linux") ) { formatter.setSpaceIndentation(8); formatter.setBracketFormatMode(BDAC_MODE); formatter.setBracketIndent(false); formatter.setClassIndent(false); formatter.setSwitchIndent(false); formatter.setNamespaceIndent(false); } // must check for mode=cs before mode=c !!! else if ( IS_OPTION(arg, "mode=cs") ) { formatter.setSharpStyle(); _modeManuallySet = true; } else if ( IS_OPTION(arg, "mode=c") ) { formatter.setCStyle(); _modeManuallySet = true; } else if ( IS_OPTION(arg, "mode=java") ) { formatter.setJavaStyle(); _modeManuallySet = true; } else if ( isParamOption(arg, "t", "indent=tab=") ) { int spaceNum = 4; string spaceNumParam = GET_PARAMS(arg, "t", "indent=tab="); if (spaceNumParam.length() > 0) spaceNum = atoi(spaceNumParam.c_str()); if (spaceNum < 2 || spaceNum > 20) isOptionError(arg, errorInfo); else formatter.setTabIndentation(spaceNum, false); } else if ( isParamOption(arg, "T", "force-indent=tab=") ) { int spaceNum = 4; string spaceNumParam = GET_PARAMS(arg, "T", "force-indent=tab="); if (spaceNumParam.length() > 0) spaceNum = atoi(spaceNumParam.c_str()); if (spaceNum < 2 || spaceNum > 20) isOptionError(arg, errorInfo); else formatter.setTabIndentation(spaceNum, true); } else if ( IS_OPTION(arg, "indent=tab") ) { formatter.setTabIndentation(4); } else if ( isParamOption(arg, "s", "indent=spaces=") ) { int spaceNum = 4; string spaceNumParam = GET_PARAMS(arg, "s", "indent=spaces="); if (spaceNumParam.length() > 0) spaceNum = atoi(spaceNumParam.c_str()); if (spaceNum < 2 || spaceNum > 20) isOptionError(arg, errorInfo); else formatter.setSpaceIndentation(spaceNum); } else if ( IS_OPTION(arg, "indent=spaces") ) { formatter.setSpaceIndentation(4); } else if ( isParamOption(arg, "m", "min-conditional-indent=") ) { int minIndent = 8; string minIndentParam = GET_PARAMS(arg, "m", "min-conditional-indent="); if (minIndentParam.length() > 0) minIndent = atoi(minIndentParam.c_str()); if (minIndent > 40) isOptionError(arg, errorInfo); else formatter.setMinConditionalIndentLength(minIndent); } else if ( isParamOption(arg, "M", "max-instatement-indent=") ) { int maxIndent = 40; string maxIndentParam = GET_PARAMS(arg, "M", "max-instatement-indent="); if (maxIndentParam.length() > 0) maxIndent = atoi(maxIndentParam.c_str()); if (maxIndent > 80) isOptionError(arg, errorInfo); else formatter.setMaxInStatementIndentLength(maxIndent); } else if ( IS_OPTIONS(arg, "B", "indent-brackets") ) { formatter.setBracketIndent(true); } else if ( IS_OPTIONS(arg, "G", "indent-blocks") ) { formatter.setBlockIndent(true); } else if ( IS_OPTIONS(arg, "N", "indent-namespaces") ) { formatter.setNamespaceIndent(true); } else if ( IS_OPTIONS(arg, "C", "indent-classes") ) { formatter.setClassIndent(true); } else if ( IS_OPTIONS(arg, "S", "indent-switches") ) { formatter.setSwitchIndent(true); } else if ( IS_OPTIONS(arg, "K", "indent-cases") ) { formatter.setCaseIndent(true); } else if ( IS_OPTIONS(arg, "L", "indent-labels") ) { formatter.setLabelIndent(true); } else if ( IS_OPTIONS(arg, "y", "brackets=break-closing") ) { formatter.setBreakClosingHeaderBracketsMode(true); } else if ( IS_OPTIONS(arg, "b", "brackets=break") ) { formatter.setBracketFormatMode(BREAK_MODE); } else if ( IS_OPTIONS(arg, "a", "brackets=attach") ) { formatter.setBracketFormatMode(ATTACH_MODE); } else if ( IS_OPTIONS(arg, "l", "brackets=linux") ) { formatter.setBracketFormatMode(BDAC_MODE); } else if ( IS_OPTIONS(arg, "O", "one-line=keep-blocks") ) { formatter.setBreakOneLineBlocksMode(false); } else if ( IS_OPTIONS(arg, "o", "one-line=keep-statements") ) { formatter.setSingleStatementsMode(false); } else if ( IS_OPTIONS(arg, "P", "pad=paren") ) { formatter.setParensOutsidePaddingMode(true); formatter.setParensInsidePaddingMode(true); } else if ( IS_OPTIONS(arg, "d", "pad=paren-out") ) { formatter.setParensOutsidePaddingMode(true); } else if ( IS_OPTIONS(arg, "D", "pad=paren-in") ) { formatter.setParensInsidePaddingMode(true); } else if ( IS_OPTIONS(arg, "U", "unpad=paren") ) { formatter.setParensUnPaddingMode(true); } else if ( IS_OPTIONS(arg, "p", "pad=oper") ) { formatter.setOperatorPaddingMode(true); } else if ( IS_OPTIONS(arg, "E", "fill-empty-lines") ) { formatter.setEmptyLineFill(true); } else if ( IS_OPTIONS(arg, "w", "indent-preprocessor") ) { formatter.setPreprocessorIndent(true); } else if ( IS_OPTIONS(arg, "V", "convert-tabs") ) { formatter.setTabSpaceConversionMode(true); } else if ( IS_OPTIONS(arg, "F", "break-blocks=all") ) { formatter.setBreakBlocksMode(true); formatter.setBreakClosingHeaderBlocksMode(true); } else if ( IS_OPTIONS(arg, "f", "break-blocks") ) { formatter.setBreakBlocksMode(true); } else if ( IS_OPTIONS(arg, "e", "break-elseifs") ) { formatter.setBreakElseIfsMode(true); } #ifdef ASTYLE_LIB // End of options used by GUI else isOptionError(arg, errorInfo); #else // Options used by only console else if ( IS_OPTIONS(arg, "n", "suffix=none") )
bool parseOption(ASFormatter &formatter, const string &arg, const string &errorInfo) { if ( IS_PARAM_OPTION(arg, "suffix=") ) { string suffixParam = GET_PARAM(arg, "suffix="); if (suffixParam.length() > 0) _suffix = suffixParam; } else if ( IS_OPTION(arg ,"style=ansi") ) { formatter.setBracketIndent(false); formatter.setSpaceIndentation(4); formatter.setBracketFormatMode(BREAK_MODE); formatter.setClassIndent(false); formatter.setSwitchIndent(false); formatter.setNamespaceIndent(false); } else if ( IS_OPTION(arg ,"style=gnu") ) { formatter.setBlockIndent(true); formatter.setSpaceIndentation(2); formatter.setBracketFormatMode(BREAK_MODE); formatter.setClassIndent(false); formatter.setSwitchIndent(false); formatter.setNamespaceIndent(false); } else if ( IS_OPTION(arg ,"style=java") ) { manuallySetJavaStyle(formatter); formatter.setBracketIndent(false); formatter.setSpaceIndentation(4); formatter.setBracketFormatMode(ATTACH_MODE); formatter.setSwitchIndent(false); } else if ( IS_OPTION(arg ,"style=kr") ) { //manuallySetCStyle(formatter); formatter.setBracketIndent(false); formatter.setSpaceIndentation(4); formatter.setBracketFormatMode(ATTACH_MODE); formatter.setClassIndent(false); formatter.setSwitchIndent(false); formatter.setNamespaceIndent(false); } else if ( IS_OPTION(arg ,"style=linux") ) { formatter.setBracketIndent(false); formatter.setSpaceIndentation(8); formatter.setBracketFormatMode(BDAC_MODE); formatter.setClassIndent(false); formatter.setSwitchIndent(false); formatter.setNamespaceIndent(false); } else if ( IS_OPTIONS(arg ,"c", "mode=c") ) { manuallySetCStyle(formatter); } else if ( IS_OPTIONS(arg ,"j", "mode=java") ) { manuallySetJavaStyle(formatter); } else if ( IS_OPTIONS(arg, "t", "indent=tab=") ) { int spaceNum = 4; string spaceNumParam = GET_PARAMS(arg, "t", "indent=tab="); if (spaceNumParam.length() > 0) spaceNum = atoi(spaceNumParam.c_str()); formatter.setTabIndentation(spaceNum); } else if ( IS_PARAM_OPTION(arg, "indent=tab") ) { formatter.setTabIndentation(4); } else if ( IS_PARAM_OPTIONS(arg, "s", "indent=spaces=") ) { int spaceNum = 4; string spaceNumParam = GET_PARAMS(arg, "s", "indent=spaces="); if (spaceNumParam.length() > 0) spaceNum = atoi(spaceNumParam.c_str()); formatter.setSpaceIndentation(spaceNum); } else if ( IS_PARAM_OPTION(arg, "indent=spaces") ) { formatter.setSpaceIndentation(4); } else if ( IS_PARAM_OPTIONS(arg, "m", "min-conditional-indent=") ) { int minIndent = 0; string minIndentParam = GET_PARAMS(arg, "m", "min-conditional-indent="); if (minIndentParam.length() > 0) minIndent = atoi(minIndentParam.c_str()); formatter.setMinConditionalIndentLength(minIndent); } else if ( IS_PARAM_OPTIONS(arg, "M", "max-instatement-indent=") ) { int maxIndent = 40; string maxIndentParam = GET_PARAMS(arg, "M", "max-instatement-indent="); if (maxIndentParam.length() > 0) maxIndent = atoi(maxIndentParam.c_str()); formatter.setMaxInStatementIndentLength(maxIndent); } else if ( IS_OPTIONS(arg, "B", "indent-brackets") ) { formatter.setBracketIndent(true); } else if ( IS_OPTIONS(arg, "G", "indent-blocks") ) { formatter.setBlockIndent(true); } else if ( IS_OPTIONS(arg, "N", "indent-namespaces") ) { formatter.setNamespaceIndent(true); } else if ( IS_OPTIONS(arg, "C", "indent-classes") ) { formatter.setClassIndent(true); } else if ( IS_OPTIONS(arg, "S", "indent-switches") ) { formatter.setSwitchIndent(true); } else if ( IS_OPTIONS(arg, "K", "indent-cases") ) { formatter.setCaseIndent(true); } else if ( IS_OPTIONS(arg, "L", "indent-labels") ) { formatter.setLabelIndent(true); } else if ( IS_OPTIONS(arg, "b", "brackets=break") ) { formatter.setBracketFormatMode(BREAK_MODE); } else if ( IS_OPTIONS(arg, "a", "brackets=attach") ) { formatter.setBracketFormatMode(ATTACH_MODE); } else if ( IS_OPTIONS(arg, "l", "brackets=linux") ) { formatter.setBracketFormatMode(BDAC_MODE); } else if ( IS_OPTIONS(arg, "O", "one-line=keep-blocks") ) { formatter.setBreakOneLineBlocksMode(false); } else if ( IS_OPTIONS(arg, "o", "one-line=keep-statements") ) { formatter.setSingleStatementsMode(false); } else if ( IS_OPTION(arg, "pad=paren") ) { formatter.setParenthesisPaddingMode(true); } else if ( IS_OPTIONS(arg, "P", "pad=all") ) { formatter.setOperatorPaddingMode(true); formatter.setParenthesisPaddingMode(true); } else if ( IS_OPTIONS(arg, "p", "pad=oper") ) { formatter.setOperatorPaddingMode(true); } else if ( IS_OPTIONS(arg, "E", "fill-empty-lines") ) { formatter.setEmptyLineFill(true); } else if (IS_OPTION(arg, "indent-preprocessor")) { formatter.setPreprocessorIndent(true); } else if (IS_OPTION(arg, "convert-tabs")) { formatter.setTabSpaceConversion(true); } else if (IS_OPTION(arg, "break-blocks=all")) { formatter.setBreakBlocks(true); formatter.setBreakClosingHeaderBlocks(true); } else if (IS_OPTION(arg, "break-blocks")) { formatter.setBreakBlocks(true); } else if ( IS_OPTIONS(arg, "X", "errors-to-standard-output") ) { _err = &cout; } else if ( IS_OPTIONS(arg ,"v", "version") ) { (*_err) << "Artistic Style " << _version << endl; exit(1); } else { (*_err) << errorInfo << arg << endl; return false; // unknown option } return true; //o.k. }