YSTest: NPLA1.cpp 文件参考

YSTest PreAlpha_b900_20201012 The YSLib Test Project

命名空间 | 宏定义 | 函数
NPLA1.cpp 文件参考
YFramework Library » Naming Protocol Language

NPLA1 公共接口。 更多...

`#include "NPL/YModules.h"`
`#include <YFM_NPL_NPLA1Forms>`
`#include "NPLA1Internals.h"`
`#include <YFM_NPL_Dependency>`
NPLA1.cpp 的引用(Include)关系图:

浏览源代码.

## 命名空间

| NPL
| NPL::A1

## 宏定义

#define | NPL_Impl_NPLA1_AssertParameterMatch true

## 函数

string | NPL::A1::to_string (ValueToken vt)
YB_NORETURN YF_API void | NPL::A1::ThrowInsufficientTermsError ()
| 抛出缺少项的异常。 更多...
void | NPL::A1::ThrowInvalidSyntaxError (const char *str)
YB_NORETURN YF_API void | NPL::A1::ThrowInvalidSyntaxError (string_view)
YB_NORETURN YF_API void | NPL::A1::ThrowNonmodifiableErrorForAssignee ()
| 抛出被赋值操作数不可修改的异常。 更多...
void | NPL::A1::ThrowUnsupportedLiteralError (const char *id)
void | NPL::A1::ThrowValueCategoryErrorForFirstArgument (const TermNode &term)
ReductionStatus | NPL::A1::Reduce (TermNode &term, ContextNode &ctx)
PDefH(ReductionStatus, Continuation::operator(), ContextNode &ctx) const ImplRet(Handler(ContextState YF_API void | NPL::A1::ReduceArguments (TNIter, TNIter, ContextNode &)
| NPLA1 表达式节点规约：调用至少一次求值例程规约子表达式。 更多...
term ctx YF_API void | NPL::A1::ReduceChildren (TNIter, TNIter, ContextNode &)
| 规约子项。 更多...
term ctx YF_API ReductionStatus | NPL::A1::ReduceChildrenOrdered (TNIter, TNIter, ContextNode &)
| 有序规约子项。 更多...
term ctx YF_API ReductionStatus | NPL::A1::ReduceFirst (TermNode &, ContextNode &)
| 规约第一个子项。 更多...
YF_API ReductionStatus | NPL::A1::ReduceOnce (TermNode &, ContextNode &)
| NPLA1 表达式节点一次规约：转发调用到 NPLA1 表达式节点一次规约续延并调用。 更多...
ReductionStatus | NPL::A1::ReduceOrdered (TermNode &term, ContextNode &ctx)
ContextNode &YF_API ReductionStatus | NPL::A1::ReduceTail (TermNode &, ContextNode &, TNIter)
| 移除容器第一个子项到指定迭代器的项后规约。 更多...
void | NPL::A1::SetupTraceDepth (ContextState &cs, const string &name)
YF_API void | NPL::A1::InsertChild (ValueNode &&, ValueNode::Container &)
| 插入 NPLA1 子节点。 更多...
YF_API ValueNode | NPL::A1::TransformNode (const TermNode &)
| 变换 NPLA1 节点 S 表达式抽象语法树为 NPLA1 语义结构。 更多...
YF_API TermNode | NPL::A1::ParseLeaf (string_view, TermNode::allocator_type)
| 分析参数指定的叶节点词素。 更多...
YF_API TermNode | NPL::A1::ParseLeafWithSourceInformation (string_view, const shared_ptr< string > &, const SourceLocation &, TermNode::allocator_type)
| 分析参数指定的带有源代码信息和叶节点词素。 更多...
ReductionStatus | NPL::A1::DefaultEvaluateLeaf (TermNode &term, string_view id)
YF_API ReductionStatus | NPL::A1::EvaluateIdentifier (TermNode &, const ContextNode &, string_view)
| 求值标识符。 更多...
YF_API ReductionStatus | NPL::A1::EvaluateLeafToken (TermNode &, ContextNode &, string_view)
| 求值叶节点记号。 更多...
ReductionStatus | NPL::A1::ReduceCombined (TermNode &term, ContextNode &ctx)
YF_API ReductionStatus | NPL::A1::ReduceCombinedBranch (TermNode &, ContextNode &)
| 规约列表合并项：同 ReduceCombined ，但只适用于枝节点。 更多...
ReductionStatus | NPL::A1::ReduceCombinedReferent (TermNode &term, ContextNode &ctx, const TermNode &fm)
YB_FLATTEN ContextNode const TermNode &YF_API ReductionStatus | NPL::A1::ReduceLeafToken (TermNode &, ContextNode &)
| 规约提取名称的叶节点记号。 更多...
YF_API ReductionStatus | NPL::A1::RelayForEval (ContextNode &, TermNode &, EnvironmentGuard &&, bool, Continuation)
| 设置当前项并直接求值规约。 更多...
YF_API ReductionStatus | NPL::A1::RelayForCall (ContextNode &, TermNode &, EnvironmentGuard &&, bool)
| 函数调用规约（ β-规约）。 更多...
YF_API void | NPL::A1::MatchParameter (const TermNode &, TermNode &, function< void(TermNode &, TNIter, const TokenValue &, TermTags, const EnvironmentReference &)>, function< void(const TokenValue &, TermNode &, TermTags, const EnvironmentReference &)>, TermTags, const EnvironmentReference &)
| 匹配参数。 更多...
YF_API void | NPL::A1::BindParameter (const shared_ptr< Environment > &, const TermNode &, TermNode &)
| 使用操作数结构化匹配并绑定参数。 更多...
YF_API void | NPL::A1::SetupDefaultInterpretation (ContextState &, EvaluationPasses)
| 设置默认解释：解释使用的公共处理遍。 更多...
YF_API void | NPL::A1::SetupTailContext (ContextNode &, TermNode &)
| 设置参数指定的上下文为尾上下文。 更多...
YB_ATTR_nodiscard YF_API bool | NPL::A1::AddTypeNameTableEntry (const ystdex::type_info &, string_view)
| 添加全局类型名称表项。 更多...
YB_ATTR_nodiscard YB_PURE YF_API string_view | NPL::A1::QueryContinuationName (const Reducer &)
| 查询续延中的名称信息。 更多...
YB_ATTR_nodiscard YB_PURE YF_API observer_ptr< const SourceInformation > | NPL::A1::QuerySourceInformation (const ValueObject &)
| 查询对象中的源代码信息。 更多...
YB_ATTR_nodiscard YB_PURE YF_API observer_ptr< const ValueObject > | NPL::A1::QueryTailOperatorName (const Reducer &)
| 查询续延指定的当前尾动作规约的操作符名称项。 更多...
YB_ATTR_nodiscard YB_PURE YF_API string_view | NPL::A1::QueryTypeName (const ystdex::type_info &)
| 查询全局类型名称表。 更多...
YF_API bool | NPL::A1::SetupTailOperatorName (TermNode &, const ContextNode &)
| 设置当前尾动作规约的操作符名称。 更多...

## 详细描述

NPLA1 公共接口。

版本
  r20086

作者
  FrankHB frank.nosp@m.hb19.nosp@m.89@gm.nosp@m.ail..nosp@m.com

自从
  build 473

创建时间:
  2014-02-02 18:02:47 +0800

修改时间:
  2020-10-06 22:04 +0800

文本编码:
  UTF-8

模块名称:
  NPL::NPLA1

在文件 NPLA1.cpp 中定义.

## 宏定义说明

## ◆ NPL_Impl_NPLA1_AssertParameterMatch

#define NPL_Impl_NPLA1_AssertParameterMatch true

自从
  build 863

在文件 NPLA1.cpp 第 57 行定义.

## 变量说明

## ◆ act

Action act {}

mutableprivate

在文件 NPLA1.cpp 第 580 行定义.

被这些函数引用 NPL::A1::Internals::PDefH(), NPL::A1::QueryContinuationName(), NPL::A1::QueryTailOperatorName() , 以及 NPL::A1::Internals::RelayForEvalOrDirect().

## ◆ alloc

TermPasses::allocator_type alloc

private

在文件 NPLA1.cpp 第 357 行定义.

被这些函数引用 ystdex::allocate_shared(), ystdex::allocate_unique(), ystdex::details::allocator_delete_base< _tAlloc >::get_allocator(), ystdex::allocator_guard_delete< _tAlloc >::operator()() , 以及 ystdex::allocator_delete< _tAlloc >::operator()().

## ◆ BindTrailing

_fBindTrailing BindTrailing

自从
  build 863

在文件 NPLA1.cpp 第 575 行定义.

## ◆ BindValue

_fBindValue BindValue

在文件 NPLA1.cpp 第 576 行定义.

## ◆ delim

TokenValue delim {";"}

private

在文件 NPLA1.cpp 第 358 行定义.

被这些函数引用 ystdex::extract_line() , 以及 ystdex::extract_line_cr().

## ◆ delim2

TokenValue delim2 {","}

private

在文件 NPLA1.cpp 第 359 行定义.

## ◆ filter

Filter filter {ystdex::bind1(HasValue<TokenValue>, delim)}

private

在文件 NPLA1.cpp 第 360 行定义.

被这些函数引用 NPL::A1::SeparatorTransformer::AddRange(), platform::Logger::Log(), NPL::A1::SeparatorTransformer::operator()(), NPL::A1::SeparatorTransformer::Process() , 以及 NPL::A1::SeparatorTransformer::ReplaceChildren().

## ◆ filter2

Filter filter2 {ystdex::bind1(HasValue<TokenValue>, delim2)}

private

在文件 NPLA1.cpp 第 361 行定义.

## ◆ pfx

ValueObject pfx {std::allocator_arg, alloc, ContextHandler(Forms::Sequence)}

private

在文件 NPLA1.cpp 第 363 行定义.

被这些函数引用 NPL::A1::SeparatorTransformer::AddRange(), NPL::A1::Forms::LoadModule_SHBuild(), NPL::A1::SeparatorTransformer::operator()(), NPL::A1::SeparatorTransformer::Process(), ystdex::quote() , 以及 NPL::A1::SeparatorTransformer::ReplaceChildren().

## ◆ pfx2

ValueObject pfx2

private

初始值:
{std::allocator_arg, alloc,
ContextHandler(FormContextHandler(ReduceBranchToList, 1))}

在文件 NPLA1.cpp 第 364 行定义.

## ◆ source_information

SourceInformation source_information

private

在文件 NPLA1.cpp 第 312 行定义.

NPL::A1::ContextHandler
YSLib::GHEvent< ReductionStatus(TermNode &, ContextNode &)> ContextHandler
上下文处理器类型。
Definition: NPLA1.h:72
NPL::ReduceBranchToList
ReductionStatus ReduceBranchToList(TermNode &term) ynothrowv
Definition: NPLA.cpp:816
alloc
TermPasses::allocator_type alloc
Definition: NPLA1.cpp:357