⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vb_parser.cpp

📁 一个统计文件大小和程序信息的插件程序(vc或vc.net下使用)
💻 CPP
字号:
/***************************************************************************/
/* NOTE:                                                                   */
/* This document is copyright (c) by John Kohler, and is bound by the      */
/* MIT open source license (www.opensource.org/licenses/mit-license.html). */
/* See License.txt for more information.                                   */
/***************************************************************************/

#include "stdafx.h"
#include "Resource.h"
#include "VB_Parser.h"
#include "config.h"

void CVBParser::ParseFile(ifstream& ifs, CFileInfo& info)
{
    char buf[10240];
    bool bInComment = false, bHasCode, bHasComments;
    while (!ifs.eof()  &&  ifs.good())
    {
        ifs.getline(buf, countof(buf));

        ParseLine(buf, bInComment, bHasCode, bHasComments);

        if (bHasComments)
        {
            ++info.m_iLinesWithComments;
        }
        if (bHasCode)
        {
            ++info.m_iLinesWithCode;
        }
        if (!bHasCode  &&  !bHasComments)
        {
            if (cfg_bProcessBlanks)
            {
                ++info.m_iBlankLines;
            }
            else
            {
                ++info.m_iLinesWithCode;
            }
        }
        ++info.m_iTotalLines;
    }

    info.m_stat = CFileInfo::full;
}

#define IS_PAIR(A, B) (ch == #@A  &&  chNext == #@B)

void CVBParser::ParseLine(
    CString sLine,
    /* in out */ bool& bMultiLineComment,
    /* out */ bool& bHasCode,
    /* out */ bool& bHasComments)
{
	bMultiLineComment = false;

	sLine.TrimLeft();
	sLine.TrimRight();

	if ( sLine.IsEmpty() )
	{
		// Blank Line
		bHasCode = false;
		bHasComments = false;
		return;
	}

	if ( sLine.GetAt(0) == '\'' )
	{
		// Whole line is comment
		bHasCode = false;
		bHasComments = true;
		return;
	}

	if ( sLine.Find('\'') != -1 )
	{
		// Code + Comment
		bHasCode = true;
		bHasComments = true;
		return;
	}

	// Pure Code
	bHasCode = true;
	bHasComments = false;

	return;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -