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

📄 numberlist.cpp

📁 C++轻量级分析器
💻 CPP
字号:
#include "..\..\..\Library\Platform\VL_Console.h"
#include "..\..\..\Library\Data\Data\VL_Data_List.h"
#include "..\..\..\Library\Data\Grammar2\Combinator\VL_CpKernel.h"
#include "..\..\..\Library\Data\Grammar2\Combinator\VL_CpString.h"

using namespace vl;
using namespace vl::platform;
using namespace vl::grammar;
using namespace vl::collection;

VL_List<VInt , true> Convert(const VL_CpPair<VInt , VL_CpList<VInt>>& Input)
{
	VL_List<VInt , true> Result;
	Result.Add(Input.First);

	VL_CpList<VInt>::Node::Ptr Current=Input.Second.Head;
	while(Current)
	{
		Result.Add(Current->Data);
		Current=Current->Next;
	}

	return Result;
}

void NumberList_Main()
{
	VUnicodeString Input=L"123,+456,-789";
	VL_List<VInt , true> Result;
	GetConsole()->WriteLine(L"现在使用Combinator Parser将字符串\""+Input+L"\"分割成数字列表:");

	VL_CpParser<PCWChar , VL_List<VInt , true>> Parser = Convert <<= _sInt + **(_Str(L",") > _sInt);

	Result=Parser.Parse(Input.Buffer()).Head->Data.First;

	for(VInt i=0;i<Result.GetCount();i++)
	{
		GetConsole()->WriteLine(Result[i]);
	}
}

⌨️ 快捷键说明

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