YSTest: NPL::Session类 参考

YSTest PreAlpha_b900_20201012 The YSLib Test Project

Public 类型 | Public 成员函数 | Public 属性 | Private 成员函数 | 静态 Private 成员函数 | Private 属性 | 所有成员列表
NPL::Session类 参考

会话：分析组成 NPL 基本翻译单元的源代码。 更多...

`#include <SContext.h>`

NPL::Session 的协作图:
[图例]

## Public 类型

using | DefaultParser = ByteParser

## Public 成员函数

| DefDeCtor (Session) Session(pmr
template<typename _fParse >
auto | GetResult (const _fParse &parse) const -> decltype(ystdex::expand_proxy< GParserResult< _fParse >(const decltype(ystdex::as_const(ystdex::unref(std::declval< const _fParse & >())))&, const Session &)>::invoke(&ParserClassOf< _fParse >::GetResult, ystdex::as_const(ystdex::unref(std::declval< const _fParse & >())), std::declval< const Session & >()))
| 取解析结果。 更多...
template<typename _tIn >
YB_ATTR_nodiscard DefaultParser | Process (_tIn first, _tIn last)
| 使用解析器处理输入范围。 更多...
template<typename _tIn , typename _fParse >
YB_ATTR_nodiscard _fParse | Process (_tIn first, _tIn last, _fParse parse)
template<typename _tRange >
YB_ATTR_nodiscard DefaultParser | Process (const _tRange &c)
template<typename _tRange , typename _fParse >
YB_ATTR_nodiscard _fParse | Process (const _tRange &c, _fParse parse)
template<typename _tIn >
YB_ATTR_nodiscard pair< DefaultParser, _tIn > | ProcessOne (ReaderState &rs, _tIn first, _tIn last)
| 使用解析器处理输入范围读取列表或元素。 更多...
template<typename _tIn , typename _fParse >
YB_ATTR_nodiscard pair< _fParse, _tIn > | ProcessOne (ReaderState &rs, _tIn first, _tIn last, _fParse parse)
template<typename _tRange >
YB_ATTR_nodiscard pair< DefaultParser, ystdex::range_iterator_t< const _tRange > > | ProcessOne (ReaderState &rs, const _tRange &c)
template<typename _tRange , typename _fParse >
YB_ATTR_nodiscard pair< _fParse, ystdex::range_iterator_t< const _tRange > > | ProcessOne (ReaderState &rs, const _tRange &c, _fParse parse)

## Public 属性

LexicalAnalyzer | Lexer {}

## Private 成员函数

template<typename _tIn , class _tTag >
YB_ATTR_nodiscard DefaultParser | ProcessSequence (_tIn first, _tIn last, _tTag)
template<typename _tIn , typename _fParse >
YB_ATTR_nodiscard _fParse | ProcessSequence (_tIn first, _tIn last, _fParse parse, std::input_iterator_tag)
template<typename _tRandom , typename _fParse >
YB_ATTR_nodiscard _fParse | ProcessSequence (_tRandom first, _tRandom last, _fParse parse, std::random_access_iterator_tag)
template<typename _tIn , class _tTag >
YB_ATTR_nodiscard pair< DefaultParser, _tIn > | ProcessSequenceOne (ReaderState &rs, _tIn first, _tIn last, _tTag)
template<typename _tIn , typename _fParse >
YB_ATTR_nodiscard pair< _fParse, _tIn > | ProcessSequenceOne (ReaderState &rs, _tIn first, _tIn last, _fParse parse, std::input_iterator_tag)
template<typename _tRandom , typename _fParse >
YB_ATTR_nodiscard pair< _fParse, _tRandom > | ProcessSequenceOne (ReaderState &rs, _tRandom first, _tRandom last, _fParse parse, std::random_access_iterator_tag)

## 静态 Private 成员函数

template<class _tParser >
static auto | ProcessReserve (_tParser &&parse, size_t n) -> decltype(ystdex::unref(parse).reserve(n))
template<typename... _tParams>
static void | ProcessReserve (_tParams &&...)

## Private 属性

pmr::polymorphic_allocator< yimpl(byte)> | allocator

## 详细描述

会话：分析组成 NPL 基本翻译单元的源代码。

警告
  非虚析构。

自从
  build 304

在文件 SContext.h 第 796 行定义.

## 成员类型定义说明

## ◆ DefaultParser

using NPL::Session::DefaultParser = ByteParser

自从
  build 890

在文件 SContext.h 第 800 行定义.

## 成员函数说明

## ◆ DefDeCtor()

NPL::Session::DefDeCtor | ( | Session |  | ) |

inline

自从
  build 618
  build 887

在文件 SContext.h 第 810 行定义.

## ◆ GetResult()

template<typename _fParse >

auto NPL::Session::GetResult | ( | const _fParse & | parse | ) | const -> decltype(ystdex::expand_proxy< GParserResult<_fParse>(const decltype(ystdex::as_const( ystdex::unref(std::declval<const _fParse&>())))&, const Session&)>::invoke(&ParserClassOf<_fParse>::GetResult, ystdex::as_const(ystdex::unref(std::declval<const _fParse&>())), std::declval<const Session&>()))

inline

取解析结果。

自从
  build 891

调用参数指定的解析器的对应函数取解析结果列表。

在文件 SContext.h 第 824 行定义.

引用了 ystdex::cpp2017::as_const(), ystdex::invoke() , 以及 ystdex::unref().

被这些函数引用 NPL::SContext::Analyze().

函数调用图:
这是这个函数的调用关系图:

## ◆ Process() [1/4]

template<typename _tIn >

YB_ATTR_nodiscard DefaultParser NPL::Session::Process | ( | _tIn | first,
|  | _tIn | last
| ) |  |

inline

使用解析器处理输入范围。

异常

  LoggedEvent | 关键失败：无法访问源内容。

参见
  DefaultParser
  SContextParsers

自从
  build 889

前两个迭代器参数或第一个范围参数指定要处理的输入序列。 之后可选的解析器参数指定使用的解析器。 对没有使用解析器的参数，使用新创建的 DefaultParser 的引用。 解析器参数应指定 SContext 语法解析器、其兼容的函数或这些类型对应的引用包装类型。

自从
  build 890

在文件 SContext.h 第 857 行定义.

被这些函数引用 NPL::A1::REPLContext::ReadFrom().

这是这个函数的调用关系图:

## ◆ Process() [2/4]

template<typename _tIn , typename _fParse >

YB_ATTR_nodiscard _fParse NPL::Session::Process | ( | _tIn | first,
|  | _tIn | last,
|  | _fParse | parse
| ) |  |

inline

在文件 SContext.h 第 864 行定义.

## ◆ Process() [3/4]

template<typename _tRange >

YB_ATTR_nodiscard DefaultParser NPL::Session::Process | ( | const _tRange & | c | ) |

inline

自从
  build 890

在文件 SContext.h 第 872 行定义.

引用了 ystdex::cpp2017::begin(), CHRLib::c , 以及 ystdex::cpp2017::end().

函数调用图:

## ◆ Process() [4/4]

template<typename _tRange , typename _fParse >

YB_ATTR_nodiscard _fParse NPL::Session::Process | ( | const _tRange & | c,
|  | _fParse | parse
| ) |  |

inline

在文件 SContext.h 第 878 行定义.

引用了 ystdex::cpp2017::begin(), CHRLib::c , 以及 ystdex::cpp2017::end().

函数调用图:

## ◆ ProcessOne() [1/4]

template<typename _tIn >

YB_ATTR_nodiscard pair<DefaultParser, _tIn> NPL::Session::ProcessOne | ( | ReaderState & | rs,
|  | _tIn | first,
|  | _tIn | last
| ) |  |

inline

使用解析器处理输入范围读取列表或元素。

自从
  build 899

同 Process ，但维护读取器状态，当读取完整的列表或元素时终止，返回解析器和迭代器。

在文件 SContext.h 第 893 行定义.

被这些函数引用 NPL::A1::REPLContext::ReadFrom().

这是这个函数的调用关系图:

## ◆ ProcessOne() [2/4]

template<typename _tIn , typename _fParse >

YB_ATTR_nodiscard pair<_fParse, _tIn> NPL::Session::ProcessOne | ( | ReaderState & | rs,
|  | _tIn | first,
|  | _tIn | last,
|  | _fParse | parse
| ) |  |

inline

在文件 SContext.h 第 900 行定义.

## ◆ ProcessOne() [3/4]

template<typename _tRange >

YB_ATTR_nodiscard pair<DefaultParser, ystdex::range_iterator_t<const _tRange> > NPL::Session::ProcessOne | ( | ReaderState & | rs,
|  | const _tRange & | c
| ) |  |

inline

在文件 SContext.h 第 908 行定义.

引用了 ystdex::cpp2017::begin(), CHRLib::c , 以及 ystdex::cpp2017::end().

函数调用图:

## ◆ ProcessOne() [4/4]

template<typename _tRange , typename _fParse >

YB_ATTR_nodiscard pair<_fParse, ystdex::range_iterator_t<const _tRange> > NPL::Session::ProcessOne | ( | ReaderState & | rs,
|  | const _tRange & | c,
|  | _fParse | parse
| ) |  |

inline

在文件 SContext.h 第 915 行定义.

引用了 ystdex::cpp2017::begin(), CHRLib::c , 以及 ystdex::cpp2017::end().

函数调用图:

## ◆ ProcessReserve() [1/2]

template<typename... _tParams>

static void NPL::Session::ProcessReserve | ( | _tParams && | ... | ) |

inlinestaticprivate

自从
  build 890

在文件 SContext.h 第 934 行定义.

## ◆ ProcessReserve() [2/2]

template<class _tParser >

static auto NPL::Session::ProcessReserve | ( | _tParser && | parse,
|  | size_t | n
| ) |  | -> decltype(ystdex::unref(parse).reserve(n))

inlinestaticprivate

自从
  build 890

在文件 SContext.h 第 926 行定义.

引用了 ystdex::unref().

函数调用图:

## ◆ ProcessSequence() [1/3]

template<typename _tIn , typename _fParse >

YB_ATTR_nodiscard _fParse NPL::Session::ProcessSequence | ( | _tIn | first,
|  | _tIn | last,
|  | _fParse | parse,
|  | std::input_iterator_tag |
| ) |  |

inlineprivate

在文件 SContext.h 第 951 行定义.

## ◆ ProcessSequence() [2/3]

template<typename _tIn , class _tTag >

YB_ATTR_nodiscard DefaultParser NPL::Session::ProcessSequence | ( | _tIn | first,
|  | _tIn | last,
|  | _tTag |
| ) |  |

inlineprivate

自从
  build 899

在文件 SContext.h 第 941 行定义.

引用了 ystdex::ref() , 以及 NPL::yunused().

函数调用图:

## ◆ ProcessSequence() [3/3]

template<typename _tRandom , typename _fParse >

YB_ATTR_nodiscard _fParse NPL::Session::ProcessSequence | ( | _tRandom | first,
|  | _tRandom | last,
|  | _fParse | parse,
|  | std::random_access_iterator_tag |
| ) |  |

inlineprivate

在文件 SContext.h 第 959 行定义.

## ◆ ProcessSequenceOne() [1/3]

template<typename _tIn , typename _fParse >

YB_ATTR_nodiscard pair<_fParse, _tIn> NPL::Session::ProcessSequenceOne | ( | ReaderState & | rs,
|  | _tIn | first,
|  | _tIn | last,
|  | _fParse | parse,
|  | std::input_iterator_tag |
| ) |  |

inlineprivate

在文件 SContext.h 第 979 行定义.

引用了 size , 以及 ystdex::unref().

函数调用图:

## ◆ ProcessSequenceOne() [2/3]

template<typename _tIn , class _tTag >

YB_ATTR_nodiscard pair<DefaultParser, _tIn> NPL::Session::ProcessSequenceOne | ( | ReaderState & | rs,
|  | _tIn | first,
|  | _tIn | last,
|  | _tTag |
| ) |  |

inlineprivate

在文件 SContext.h 第 970 行定义.

引用了 ystdex::ref().

函数调用图:

## ◆ ProcessSequenceOne() [3/3]

template<typename _tRandom , typename _fParse >

YB_ATTR_nodiscard pair<_fParse, _tRandom> NPL::Session::ProcessSequenceOne | ( | ReaderState & | rs,
|  | _tRandom | first,
|  | _tRandom | last,
|  | _fParse | parse,
|  | std::random_access_iterator_tag |
| ) |  |

inlineprivate

在文件 SContext.h 第 1007 行定义.

## 类成员变量说明

## ◆ allocator

pmr::polymorphic_allocator<yimpl(byte)> NPL::Session::allocator

private

自从
  build 890

在文件 SContext.h 第 806 行定义.

## ◆ Lexer

LexicalAnalyzer NPL::Session::Lexer {}

自从
  build 592

在文件 SContext.h 第 802 行定义.

被这些函数引用 NPL::A1::REPLContext::ReadFrom().

该类的文档由以下文件生成:

- SContext.h