numberlist.cpp
来自「C++轻量级分析器」· C++ 代码 · 共 40 行
CPP
40 行
#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 + =
减小字号Ctrl + -
显示快捷键?