亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? asbeautifier.cpp

?? Artistic Style 源代碼
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
/*
 * Copyright (c) 1998,1999,2000,2001,2002 Tal Davidson. All rights reserved.
 *
 * ASBeautifier.cpp
 * by Tal Davidson (davidsont@bigfoot.com)
 * This file is a part of "Artistic Style" - an indentater and reformatter
 * of C, C, C# and Java source files.
 *
 * The "Artistic Style" project, including all files needed to compile it,
 * is free software; you can redistribute it and/or use it and/or modify it
 * under the terms of the GNU General Public License as published 
 * by the Free Software Foundation; either version 2 of the License, 
 * or (at your option) any later version.
 *
 * This program 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.
 *
 * You should have received a copy of the GNU General Public
 * License along with this program.
 *
 * Patches:
 * 18 March 1999 - Brian Rampel -
 *       Fixed inverse insertion of spaces vs. tabs when in -t mode.
*/

#include "compiler_defines.h"
#include "astyle.h"

#include <vector>
#include <string>
#include <cctype>
#include <algorithm>
#include <iostream>


#define INIT_CONTAINER(container, value)     {if ( (container) != NULL ) delete (container); (container) = (value); }
#define DELETE_CONTAINER(container)          {if ( (container) != NULL ) delete (container) ; }

#ifdef USES_NAMESPACE
using namespace std;
#endif




#ifdef USES_NAMESPACE
namespace astyle
{
#endif

bool ASBeautifier::calledInitStatic = false;

vector<const string*> ASBeautifier::headers;
vector<const string*> ASBeautifier::nonParenHeaders;
vector<const string*> ASBeautifier::preBlockStatements;
vector<const string*> ASBeautifier::assignmentOperators;
vector<const string*> ASBeautifier::nonAssignmentOperators;

/*
 * initialize the static vars
 */
void ASBeautifier::initStatic()
{
    if (calledInitStatic)
        return;

    calledInitStatic = true;

    headers.push_back(&AS_IF);
    headers.push_back(&AS_ELSE);
    headers.push_back(&AS_FOR);
    headers.push_back(&AS_WHILE);
    headers.push_back(&AS_DO);
    headers.push_back(&AS_TRY);
    headers.push_back(&AS_CATCH);
    headers.push_back(&AS_FINALLY);
    headers.push_back(&AS_SYNCHRONIZED);
    headers.push_back(&AS_SWITCH);
    headers.push_back(&AS_CASE);
    headers.push_back(&AS_DEFAULT);
    headers.push_back(&AS_FOREACH);
    headers.push_back(&AS_LOCK);
    headers.push_back(&AS_UNSAFE);
    headers.push_back(&AS_FIXED);
    headers.push_back(&AS_GET);
    headers.push_back(&AS_SET);
    headers.push_back(&AS_ADD);
    headers.push_back(&AS_REMOVE);
    //headers.push_back(&AS_PUBLIC);
    //headers.push_back(&AS_PRIVATE);
    //headers.push_back(&AS_PROTECTED);

    //headers.push_back(&AS_OPERATOR);
    headers.push_back(&AS_TEMPLATE);
    headers.push_back(&AS_CONST);
    /**/
    headers.push_back(&AS_STATIC);
    headers.push_back(&AS_EXTERN);

    nonParenHeaders.push_back(&AS_ELSE);
    nonParenHeaders.push_back(&AS_DO);
    nonParenHeaders.push_back(&AS_TRY);
    nonParenHeaders.push_back(&AS_FINALLY);
    nonParenHeaders.push_back(&AS_STATIC);
    nonParenHeaders.push_back(&AS_CONST);
    nonParenHeaders.push_back(&AS_EXTERN);
    nonParenHeaders.push_back(&AS_CASE);
    nonParenHeaders.push_back(&AS_DEFAULT);
    nonParenHeaders.push_back(&AS_UNSAFE);
    nonParenHeaders.push_back(&AS_GET);
    nonParenHeaders.push_back(&AS_SET);
    nonParenHeaders.push_back(&AS_ADD);
    nonParenHeaders.push_back(&AS_REMOVE);



    nonParenHeaders.push_back(&AS_PUBLIC);
    nonParenHeaders.push_back(&AS_PRIVATE);
    nonParenHeaders.push_back(&AS_PROTECTED);
    nonParenHeaders.push_back(&AS_TEMPLATE);
    nonParenHeaders.push_back(&AS_CONST);
///    nonParenHeaders.push_back(&AS_ASM);

    preBlockStatements.push_back(&AS_CLASS);
    preBlockStatements.push_back(&AS_STRUCT);
    preBlockStatements.push_back(&AS_UNION);
    preBlockStatements.push_back(&AS_INTERFACE);
    preBlockStatements.push_back(&AS_NAMESPACE);
    preBlockStatements.push_back(&AS_THROWS);
    preBlockStatements.push_back(&AS_EXTERN);

    assignmentOperators.push_back(&AS_ASSIGN);
    assignmentOperators.push_back(&AS_PLUS_ASSIGN);
    assignmentOperators.push_back(&AS_MINUS_ASSIGN);
    assignmentOperators.push_back(&AS_MULT_ASSIGN);
    assignmentOperators.push_back(&AS_DIV_ASSIGN);
    assignmentOperators.push_back(&AS_MOD_ASSIGN);
    assignmentOperators.push_back(&AS_OR_ASSIGN);
    assignmentOperators.push_back(&AS_AND_ASSIGN);
    assignmentOperators.push_back(&AS_XOR_ASSIGN);
    assignmentOperators.push_back(&AS_GR_GR_GR_ASSIGN);
    assignmentOperators.push_back(&AS_GR_GR_ASSIGN);
    assignmentOperators.push_back(&AS_LS_LS_LS_ASSIGN);
    assignmentOperators.push_back(&AS_LS_LS_ASSIGN);

    assignmentOperators.push_back(&AS_RETURN);

    nonAssignmentOperators.push_back(&AS_EQUAL);
    nonAssignmentOperators.push_back(&AS_PLUS_PLUS);
    nonAssignmentOperators.push_back(&AS_MINUS_MINUS);
    nonAssignmentOperators.push_back(&AS_NOT_EQUAL);
    nonAssignmentOperators.push_back(&AS_GR_EQUAL);
    nonAssignmentOperators.push_back(&AS_GR_GR_GR);
    nonAssignmentOperators.push_back(&AS_GR_GR);
    nonAssignmentOperators.push_back(&AS_LS_EQUAL);
    nonAssignmentOperators.push_back(&AS_LS_LS_LS);
    nonAssignmentOperators.push_back(&AS_LS_LS);
    nonAssignmentOperators.push_back(&AS_ARROW);
    nonAssignmentOperators.push_back(&AS_AND);
    nonAssignmentOperators.push_back(&AS_OR);
}

/**
 * ASBeautifier's constructor
 */
ASBeautifier::ASBeautifier()
{
    initStatic();

    waitingBeautifierStack = NULL;
    activeBeautifierStack = NULL;
    waitingBeautifierStackLengthStack = NULL;
    activeBeautifierStackLengthStack = NULL;

    headerStack  = NULL;
    tempStacks = NULL;
    blockParenDepthStack = NULL;
    blockStatementStack = NULL;
    parenStatementStack = NULL;
    bracketBlockStateStack = NULL;
    inStatementIndentStack = NULL;
    inStatementIndentStackSizeStack = NULL;
    parenIndentStack = NULL;
    sourceIterator = NULL;

    isMinimalConditinalIndentSet = false;
	shouldForceTabIndentation = false;

    setSpaceIndentation(4);
    setMaxInStatementIndentLength(40);
    setClassIndent(false);
    setSwitchIndent(false);
    setCaseIndent(false);
    setBlockIndent(false);
    setBracketIndent(false);
    setNamespaceIndent(false);
    setLabelIndent(false);
    setEmptyLineFill(false);
    setCStyle();
    setPreprocessorIndent(false);
}

ASBeautifier::ASBeautifier(const ASBeautifier &other)
{
    waitingBeautifierStack = NULL;
    activeBeautifierStack = NULL;
    waitingBeautifierStackLengthStack = NULL;
    activeBeautifierStackLengthStack = NULL;

    headerStack  = new vector<const string*>;
    *headerStack = *other.headerStack;

    tempStacks = new vector< vector<const string*>* >;
    vector< vector<const string*>* >::iterator iter;
    for (iter = other.tempStacks->begin();
            iter != other.tempStacks->end();
            ++iter)
    {
        vector<const string*> *newVec = new vector<const string*>;
        *newVec = **iter;
        tempStacks->push_back(newVec);
    }
    blockParenDepthStack = new vector<int>;
    *blockParenDepthStack = *other.blockParenDepthStack;

    blockStatementStack = new vector<bool>;
    *blockStatementStack = *other.blockStatementStack;

    parenStatementStack =  new vector<bool>;
    *parenStatementStack = *other.parenStatementStack;

    bracketBlockStateStack = new vector<bool>;
    *bracketBlockStateStack = *other.bracketBlockStateStack;

    inStatementIndentStack = new vector<int>;
    *inStatementIndentStack = *other.inStatementIndentStack;

    inStatementIndentStackSizeStack = new vector<int>;
    *inStatementIndentStackSizeStack = *other.inStatementIndentStackSizeStack;

    parenIndentStack = new vector<int>;
    *parenIndentStack = *other.parenIndentStack;

    sourceIterator = other.sourceIterator;

    indentString = other.indentString;
    currentHeader = other.currentHeader;
    previousLastLineHeader = other.previousLastLineHeader;
    immediatelyPreviousAssignmentOp = other.immediatelyPreviousAssignmentOp;
    isInQuote = other.isInQuote;
    isInComment = other.isInComment;
    isInCase = other.isInCase;
    isInQuestion = other.isInQuestion;
    isInStatement =other. isInStatement;
    isInHeader = other.isInHeader;
    isCStyle = other.isCStyle;
    isInOperator = other.isInOperator;
    isInTemplate = other.isInTemplate;
    isInConst = other.isInConst;
    classIndent = other.classIndent;
    isInClassHeader = other.isInClassHeader;
    isInClassHeaderTab = other.isInClassHeaderTab;
    switchIndent = other.switchIndent;
    caseIndent = other.caseIndent;
    namespaceIndent = other.namespaceIndent;
    bracketIndent = other.bracketIndent;
    blockIndent = other.blockIndent;
    labelIndent = other.labelIndent;
    preprocessorIndent = other.preprocessorIndent;
    parenDepth = other.parenDepth;
    indentLength = other.indentLength;
    blockTabCount = other.blockTabCount;
    leadingWhiteSpaces = other.leadingWhiteSpaces;
    maxInStatementIndent = other.maxInStatementIndent;
    templateDepth = other.templateDepth;
    quoteChar = other.quoteChar;
    prevNonSpaceCh = other.prevNonSpaceCh;
    currentNonSpaceCh = other.currentNonSpaceCh;
    currentNonLegalCh = other.currentNonLegalCh;
    prevNonLegalCh = other.prevNonLegalCh;
    isInConditional = other.isInConditional;
    minConditionalIndent = other.minConditionalIndent;
    prevFinalLineSpaceTabCount = other.prevFinalLineSpaceTabCount;
    prevFinalLineTabCount = other.prevFinalLineTabCount;
    emptyLineFill = other.emptyLineFill;
    probationHeader = other.probationHeader;
    isInDefine = other.isInDefine;
    isInDefineDefinition = other.isInDefineDefinition;
	backslashEndsPrevLine = other.backslashEndsPrevLine;
    defineTabCount = other.defineTabCount;
}

/**
 * ASBeautifier's destructor
 */
ASBeautifier::~ASBeautifier()
{
    DELETE_CONTAINER( headerStack );
    DELETE_CONTAINER( tempStacks );
    DELETE_CONTAINER( blockParenDepthStack );
    DELETE_CONTAINER( blockStatementStack );
    DELETE_CONTAINER( parenStatementStack );
    DELETE_CONTAINER( bracketBlockStateStack );
    DELETE_CONTAINER( inStatementIndentStack );
    DELETE_CONTAINER( inStatementIndentStackSizeStack );
    DELETE_CONTAINER( parenIndentStack );

    //DELETE_CONTAINER( sourceIterator );
}

/**
 * initialize the ASBeautifier.
 *
 * init() should be called every time a ABeautifier object is to start
 * beautifying a NEW source file.
 * init() recieves a pointer to a DYNAMICALLY CREATED ASSourceIterator object
 * that will be used to iterate through the source code. This object will be
 * deleted during the ASBeautifier's destruction, and thus should not be
 * deleted elsewhere.
 *
 * @param iter     a pointer to the DYNAMICALLY CREATED ASSourceIterator object.
 */
void ASBeautifier::init(ASSourceIterator *iter)
{
    sourceIterator = iter;
    init();
}

/**
 * initialize the ASBeautifier.
 */
void ASBeautifier::init()
{
    INIT_CONTAINER( waitingBeautifierStack,  new vector<ASBeautifier*> );
    INIT_CONTAINER( activeBeautifierStack,  new vector<ASBeautifier*> );

    INIT_CONTAINER( waitingBeautifierStackLengthStack, new vector<int> );
    INIT_CONTAINER( activeBeautifierStackLengthStack, new vector<int> );

    INIT_CONTAINER( headerStack,  new vector<const string*> );
    INIT_CONTAINER( tempStacks, new vector< vector<const string*>* > );
    tempStacks->push_back(new vector<const string*>);

    INIT_CONTAINER( blockParenDepthStack, new vector<int> );
    INIT_CONTAINER( blockStatementStack, new vector<bool> );
    INIT_CONTAINER( parenStatementStack, new vector<bool> );

    INIT_CONTAINER( bracketBlockStateStack, new vector<bool> );
    bracketBlockStateStack->push_back(true);

    INIT_CONTAINER( inStatementIndentStack, new vector<int> );
    INIT_CONTAINER( inStatementIndentStackSizeStack, new vector<int> );
    inStatementIndentStackSizeStack->push_back(0);
    INIT_CONTAINER( parenIndentStack, new vector<int> );

    immediatelyPreviousAssignmentOp = NULL;
    previousLastLineHeader = NULL;

    isInQuote = false;
    isInComment = false;
    isInStatement = false;
    isInCase = false;
    isInQuestion = false;
    isInClassHeader = false;
    isInClassHeaderTab = false;
    isInHeader = false;
    isInOperator = false;
    isInTemplate = false;
    isInConst = false;
    isInConditional = false;
    templateDepth = 0;
    parenDepth=0;
    blockTabCount = 0;
    leadingWhiteSpaces = 0;
    prevNonSpaceCh = '{';
    currentNonSpaceCh = '{';
    prevNonLegalCh = '{';
    currentNonLegalCh = '{';
    prevFinalLineSpaceTabCount = 0;
    prevFinalLineTabCount = 0;
    probationHeader = NULL;
    backslashEndsPrevLine = false;
    isInDefine = false;
    isInDefineDefinition = false;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91蜜桃网址入口| 国产麻豆午夜三级精品| 国产精品二三区| 国产性色一区二区| 中文字幕乱码亚洲精品一区| 久久久久久免费毛片精品| 精品理论电影在线观看| 精品久久五月天| 久久精品欧美一区二区三区不卡| 欧美va亚洲va香蕉在线| 久久久精品免费免费| 久久综合网色—综合色88| 欧美国产综合色视频| 国产精品美女久久久久久 | 91免费观看视频在线| 91丝袜国产在线播放| 色婷婷综合久久久久中文 | 国产在线观看免费一区| 国产精品资源站在线| 紧缚捆绑精品一区二区| 国产成人在线视频播放| 成人爽a毛片一区二区免费| 成人精品免费视频| 91蝌蚪porny九色| 欧美一区二区视频在线观看2022 | 欧美人牲a欧美精品| 欧美日精品一区视频| 欧美精品三级日韩久久| 26uuu色噜噜精品一区| 国产精品福利电影一区二区三区四区| 国产精品久久久久久久久晋中| 国产清纯美女被跳蛋高潮一区二区久久w| 国产精品日日摸夜夜摸av| 亚洲国产精品久久人人爱| 精品亚洲porn| 欧美丝袜丝交足nylons| 精品福利一区二区三区| 一级日本不卡的影视| 蜜臀久久99精品久久久久久9| 国产伦精品一区二区三区免费迷 | 成人av在线看| 欧美日韩国产小视频在线观看| 91精品国产综合久久久久久久| 国产三级一区二区三区| 中文字幕佐山爱一区二区免费| 日韩和欧美一区二区| 国产99久久久国产精品潘金网站| 在线一区二区视频| 国产欧美日韩在线视频| 五月天激情综合| 99久久久久久99| ww久久中文字幕| 一区二区三区欧美日| 福利电影一区二区| 精品少妇一区二区| 日日夜夜免费精品| 色狠狠综合天天综合综合| 国产午夜精品一区二区三区四区| 日日夜夜精品视频免费 | 亚洲日本在线视频观看| 国产成人av一区二区三区在线观看| 欧美日韩在线综合| 一区二区三区在线视频观看58| 成人免费看视频| xf在线a精品一区二区视频网站| 亚洲成人午夜电影| 欧美色图免费看| 亚洲国产精品精华液网站| 91女厕偷拍女厕偷拍高清| 国产精品毛片大码女人| 国产成人小视频| 久久精品视频一区| 国产精品99久久久久久有的能看 | 成人av动漫网站| 中文字幕乱码日本亚洲一区二区| 老司机免费视频一区二区三区| 欧美精品少妇一区二区三区| 亚洲高清在线精品| 欧美精品久久一区| 强制捆绑调教一区二区| 91麻豆精品91久久久久久清纯 | 国产乱国产乱300精品| 久久嫩草精品久久久久| 风间由美一区二区三区在线观看 | 国产精品美女久久久久久久久| 豆国产96在线|亚洲| 国产精品美女久久久久aⅴ| 懂色中文一区二区在线播放| 久久久久国产一区二区三区四区 | 成人免费观看视频| 亚洲欧洲性图库| 欧美亚洲自拍偷拍| 无吗不卡中文字幕| 久久综合色8888| 成人免费毛片高清视频| 亚洲一区二区三区在线看| 欧美性大战xxxxx久久久| 亚洲小说春色综合另类电影| 91精品国产91久久久久久一区二区 | 色婷婷久久一区二区三区麻豆| 亚洲激情av在线| 7777精品伊人久久久大香线蕉| 久久99蜜桃精品| 国产精品成人网| 欧美日韩一卡二卡| 国产一区二区福利| 亚洲精品欧美激情| 欧美一卡在线观看| yourporn久久国产精品| 午夜精品成人在线| 久久精子c满五个校花| 欧美自拍丝袜亚洲| 国产精品自拍三区| 天堂av在线一区| 亚洲国产精品成人综合| 欧美一区二区精美| 色综合久久六月婷婷中文字幕| 男女男精品视频网| 亚洲色图.com| 日本一区二区免费在线| 欧美日韩精品欧美日韩精品一| 国产一区二区视频在线播放| 亚洲大片精品永久免费| 国产精品初高中害羞小美女文| 51精品国自产在线| 日本精品一级二级| 国产大片一区二区| 日本成人在线一区| 伊人夜夜躁av伊人久久| 国产精品视频你懂的| 日韩三级中文字幕| 91久久奴性调教| 成人一区二区三区视频| 久久99久久久久| 日韩高清不卡一区二区| 亚洲精品乱码久久久久久黑人| 国产亚洲欧美在线| 精品福利av导航| 欧美大片在线观看| 欧美精品成人一区二区三区四区| 在线观看日韩电影| 成人av资源在线| 国产91清纯白嫩初高中在线观看| 美腿丝袜在线亚洲一区| 日韩黄色免费电影| 午夜精品成人在线| 午夜成人免费电影| 午夜私人影院久久久久| 五月综合激情婷婷六月色窝| 亚洲精品视频观看| 亚洲国产日韩在线一区模特| 一区二区三区四区高清精品免费观看| 中文字幕欧美日本乱码一线二线| 久久人人爽爽爽人久久久| 精品欧美一区二区久久| 欧美tickling挠脚心丨vk| 欧美一区二区成人| 精品久久久久99| 久久久久久日产精品| 国产无遮挡一区二区三区毛片日本| 久久久久久久久久久久电影| 国产精品嫩草99a| 亚洲免费观看高清在线观看| 亚洲精品欧美二区三区中文字幕| 一区二区在线观看av| 午夜视频在线观看一区二区三区 | 日韩午夜精品视频| 久久久另类综合| 国产精品久久久久久久浪潮网站 | 欧美一区二区久久| 久久久精品免费观看| 国产精品久久久久久久久免费樱桃 | 欧美丰满高潮xxxx喷水动漫| 6080国产精品一区二区| 精品国产免费人成电影在线观看四季| 久久品道一品道久久精品| 国产视频911| 亚洲一区二区三区四区在线 | 久久99蜜桃精品| 不卡电影一区二区三区| 在线免费一区三区| 精品国一区二区三区| 亚洲天天做日日做天天谢日日欢 | 国产欧美一区二区在线观看| 1024成人网色www| 日本不卡一区二区| 成人av网站在线观看免费| 欧美四级电影在线观看| 久久久精品国产免大香伊| 一区二区在线免费观看| 国产一区二区三区美女| 91丨porny丨国产| 久久久噜噜噜久噜久久综合| 一区二区三国产精华液| 国产美女久久久久| 欧美日韩一区二区在线观看视频| 欧美成人官网二区| 亚洲成a人在线观看| 国产成人av电影免费在线观看| 99久久综合国产精品|