YSTest: NPL::A1::Internals 命名空间参考

YSTest PreAlpha_b900_20201012 The YSLib Test Project

类型定义 | 函数 | 变量
NPL::A1::Internals 命名空间参考

内部接口。 更多...

## 类型定义

using | Action = function< void()>

## 函数

EnvironmentReference | FetchTailEnvironmentReference (const TermReference &ref, ContextNode &ctx)
ReductionStatus | ReduceForCombinerRef (TermNode &term, ContextNode &ctx, const TermReference &ref, const ContextHandler &h, size_t n)
YB_FLATTEN | PDefH (void, SetupNextTerm, ContextNode &ctx, TermNode &term) ImplExpr(ContextState
template<typename _fCurrent >
| YB_ATTR (always_inline) inline auto RelayDirect(ContextNode &ctx
template<typename _fCurrent , typename _fNext >
YB_FLATTEN ReductionStatus | RelayCurrentNext (TermNode &term, ContextNode &ctx, _fCurrent &&cur, _fNext &&next)
template<typename _fCurrent , typename _fNext >
YB_FLATTEN ReductionStatus | ReduceCurrentNext (TermNode &term, ContextNode &ctx, _fCurrent &&cur, _fNext &&next)
template<typename _fNext >
ReductionStatus | RelayForEvalOrDirect (ContextNode &ctx, TermNode &term, EnvironmentGuard &&gd, bool no_lift, _fNext &&next)
template<typename _fNext >
ReductionStatus | ReduceSubsequent (TermNode &term, ContextNode &ctx, _fNext &&next)
template<typename _fCurrent >
ReductionStatus | ReduceSubsequentCombinedBranch (TermNode &term, ContextNode &ctx, _fCurrent &&next)

## 变量

_fCurrent && | cur
_fCurrent TermNode &decltype(cur(term, ctx)) | term
YB_ATTR_nodiscard YB_PURE PDefH(TermReference, EnsureLValueReference, const TermReference &ref) ImplRet(TermReference(ref.GetTags() &~TermTags YB_ATTR_nodiscard YB_PURE EnvironmentReference | FetchTailEnvironmentReference (const TermReference &, ContextNode &)

## 详细描述

内部接口。

自从
  build 882

用于实现 NPLA1Forms 和其它 NPL 模块的非公开 API 。

## 类型定义说明

## ◆ Action

using NPL::A1::Internals::Action = typedef function<void()>

自从
  build 881

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

## 函数说明

## ◆ FetchTailEnvironmentReference()

EnvironmentReference NPL::A1::Internals::FetchTailEnvironmentReference | ( | const TermReference & | ref,
|  | ContextNode & | ctx
| ) |  |

在文件 NPLA1Internals.cpp 第 175 行定义.

引用了 ystdex::ref().

被这些函数引用 ReduceForCombinerRef().

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

## ◆ PDefH()

YB_FLATTEN NPL::A1::Internals::PDefH | ( | void | ,
|  | SetupNextTerm | ,
|  | ContextNode & | ctx,
|  | TermNode & | term
| ) |  |

inline

自从
  build 820
  build 842

在文件 NPLA1Internals.h 第 78 行定义.

引用了 act , 以及 NPL::ContextNode::SetupFront().

函数调用图:

## ◆ ReduceCurrentNext()

template<typename _fCurrent , typename _fNext >

YB_FLATTEN ReductionStatus NPL::A1::Internals::ReduceCurrentNext | ( | TermNode & | term,
|  | ContextNode & | ctx,
|  | _fCurrent && | cur,
|  | _fNext && | next
| ) |  |

inline

在文件 NPLA1Internals.h 第 644 行定义.

引用了 cur, next, RelayCurrentNext(), term , 以及 yforward.

被这些函数引用 RelayForEvalOrDirect().

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

## ◆ ReduceForCombinerRef()

ReductionStatus NPL::A1::Internals::ReduceForCombinerRef | ( | TermNode & | ,
|  | ContextNode & | ,
|  | const TermReference & | ,
|  | const ContextHandler & | ,
|  | size_t |
| ) |  |

自从
  build 878

在文件 NPLA1Internals.cpp 第 186 行定义.

引用了 YSLib::a, NPL::AsTermNode(), platform::Deref(), FetchTailEnvironmentReference(), ystdex::ref(), term , 以及 NPL::tm.

被这些函数引用 NPL::A1::Forms::WrapRef().

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

## ◆ ReduceSubsequent()

template<typename _fNext >

ReductionStatus NPL::A1::Internals::ReduceSubsequent | ( | TermNode & | term,
|  | ContextNode & | ctx,
|  | _fNext && | next
| ) |  |

inline

自从
  build 821

在文件 NPLA1Internals.h 第 699 行定义.

引用了 NPL::A1::ContextState::Access, next, ReduceCurrentNext(), NPL::A1::ReduceOnce(), ystdex::ref(), term , 以及 yforward.

被这些函数引用 NPL::A1::Forms::If() , 以及 NPL::A1::SetupDefaultInterpretation().

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

## ◆ ReduceSubsequentCombinedBranch()

template<typename _fCurrent >

ReductionStatus NPL::A1::Internals::ReduceSubsequentCombinedBranch | ( | TermNode & | term,
|  | ContextNode & | ctx,
|  | _fCurrent && | next
| ) |  |

inline

自从
  build 884

在文件 NPLA1Internals.h 第 708 行定义.

引用了 next, NPL::A1::ReduceCombinedBranch(), ReduceCurrentNext(), ystdex::ref(), term , 以及 yforward.

函数调用图:

## ◆ RelayCurrentNext()

template<typename _fCurrent , typename _fNext >

YB_FLATTEN ReductionStatus NPL::A1::Internals::RelayCurrentNext | ( | TermNode & | term,
|  | ContextNode & | ctx,
|  | _fCurrent && | cur,
|  | _fNext && | next
| ) |  |

inline

自从
  build 898

在文件 NPLA1Internals.h 第 620 行定义.

引用了 cur, next, NPL::RelaySwitched(), term , 以及 yforward.

被这些函数引用 ReduceCurrentNext().

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

## ◆ RelayForEvalOrDirect()

template<typename _fNext >

ReductionStatus NPL::A1::Internals::RelayForEvalOrDirect | ( | ContextNode & | ctx,
|  | TermNode & | term,
|  | EnvironmentGuard && | gd,
|  | bool | no_lift,
|  | _fNext && | next
| ) |  |

自从
  build 878

在文件 NPLA1Internals.h 第 655 行定义.

引用了 act, NPL::A1::NameTypedContextHandler(), next, ReduceCurrentNext(), NPL::RelaySwitched(), term, yforward , 以及 NPL::yunused().

函数调用图:

## ◆ YB_ATTR()

template<typename _fCurrent >

NPL::A1::Internals::YB_ATTR | ( | always_inline |  | ) | &

## 变量说明

## ◆ cur

_fCurrent && NPL::A1::Internals::cur

在文件 NPLA1Internals.h 第 591 行定义.

被这些函数引用 ystdex::details::list_rep< _type, std::allocator< _type > >::append_default(), ystdex::details::list_rep< _type, std::allocator< _type > >::clear_nodes_from(), NPL::ContextNode::DefaultResolve(), ystdex::details::list_rep< _type, std::allocator< _type > >::detach_node(), ystdex::details::rb_tree::tree< key_type, value_type, first_of<>, key_compare, allocator_type >::detach_node(), ystdex::details::list_rep< _type, std::allocator< _type > >::erase_range(), ReduceCurrentNext(), RelayCurrentNext(), NPL::RelaySwitched(), ystdex::basic_membuf< _tChar, _tTraits >::seekoff(), YSLib::Text::TextFileBuffer::TextFileBuffer() , 以及 ystdex::update_thunk().

## ◆ FetchTailEnvironmentReference

YB_ATTR_nodiscard YB_PURE PDefH (TermReference, EnsureLValueReference, const TermReference& ref) ImplRet(TermReference(ref.GetTags() & ~TermTags YB_ATTR_nodiscard YB_PURE EnvironmentReference NPL::A1::Internals::FetchTailEnvironmentReference(const TermReference &, ContextNode &)

inline

自从
  build 897

在文件 NPLA1Internals.h 第 791 行定义.

## ◆ term

_fCurrent TermNode & NPL::A1::Internals::term

初始值:
{
return ystdex::unref(cur)(term, ctx)

在文件 NPLA1Internals.h 第 592 行定义.

被这些函数引用 NPL::Access(), NPL::AccessPtr(), NPL::AccessRegular(), NPL::A1::Forms::AccL(), NPL::A1::Forms::AccR(), NPL::AllocateEnvironment(), NPL::A1::Forms::And(), NPL::A1::Forms::Apply(), NPL::A1::Forms::CallSystem(), NPL::A1::Forms::CheckEnvironment(), NPL::A1::Forms::CheckListReference(), NPL::CheckRegular(), NPL::A1::Forms::Cond(), NPL::A1::Forms::Cons(), NPL::A1::Forms::ConsRef(), NPL::SXML::ConvertAttributeNodeString(), NPL::SXML::ConvertDocumentNode(), NPL::SXML::ConvertStringNode(), NPL::A1::Forms::DefineLazy(), NPL::A1::Forms::DefineWithNoRecursion(), NPL::A1::Forms::DefineWithRecursion(), NPL::A1::Forms::Equal(), NPL::A1::Forms::EqualLeaf(), NPL::A1::Forms::EqualReference(), NPL::A1::Forms::EqualValue(), NPL::A1::Forms::Eval(), NPL::A1::Forms::EvalRef(), NPL::A1::Forms::EvalString(), NPL::A1::Forms::EvalStringRef(), NPL::A1::Forms::EvalUnit(), NPL::A1::Forms::First(), NPL::A1::Forms::FirstAt(), NPL::A1::Forms::FirstRef(), NPL::A1::Forms::FirstVal(), NPL::A1::Forms::FoldR1(), NPL::A1::Forms::ForwardListFirst(), NPL::A1::Forms::GetCurrentEnvironment(), NPL::HasValue(), NPL::A1::Forms::If(), NPL::IsBoundLValueTerm(), NPL::IsReferenceTerm(), NPL::IsUncollapsedTerm(), NPL::IsUniqueTerm(), NPL::A1::Forms::Lambda(), NPL::A1::Forms::LambdaRef(), NPL::LiftCollapsed(), NPL::LiftOtherOrCopy(), NPL::LiftTermOrCopy(), NPL::LiftTermValueOrCopy(), NPL::LiftToReference(), NPL::LiftToReturn(), NPL::A1::Forms::ListAsterisk(), NPL::A1::Forms::ListAsteriskRef(), NPL::A1::Forms::LoadModule_SHBuild(), NPL::A1::Forms::LoadModule_std_environments(), NPL::A1::Forms::LoadModule_std_io(), NPL::A1::Forms::LoadModule_std_system(), NPL::A1::Forms::LockCurrentEnvironment(), NPL::A1::Forms::MakeEncapsulationType(), NPL::A1::Forms::MakeEnvironment(), NPL::A1::Forms::Map1(), NPL::MapNPLALeafNode(), NPL::MoveCollapsed(), NPL::MoveRValueToForward(), NPL::MoveRValueToReturn(), NPL::A1::Forms::Not(), NPL::ReferenceTermOp::operator()(), NPL::A1::Forms::Or(), NPL::ParseNPLATermString(), NPL::PDefH(), NPL::PrepareCollapse(), NPL::SXML::PrintSyntaxNode(), NPL::SContext::Reduce(), NPL::ReduceBranchToList(), NPL::ReduceBranchToListValue(), ReduceCurrentNext(), ReduceForCombinerRef(), NPL::ReduceHeadEmptyList(), ReduceSubsequent(), ReduceSubsequentCombinedBranch(), NPL::A1::ReduceToLoadExternal(), NPL::ReduceToReference(), NPL::ReduceToReferenceAt(), NPL::RegularizeTerm(), RelayCurrentNext(), RelayForEvalOrDirect(), NPL::A1::RelayToLoadExternal(), NPL::ResolveEnvironment(), NPL::ResolveRegular(), NPL::ResolveTerm(), NPL::A1::Forms::RetainN(), NPL::A1::Forms::Sequence(), NPL::A1::Forms::SetFirst(), NPL::A1::Forms::SetFirstAt(), NPL::A1::Forms::SetFirstRef(), NPL::A1::Forms::SetRest(), NPL::A1::Forms::SetRestRef(), NPL::A1::SetupDefaultInterpretation(), NPL::A1::SetupTailContext(), NPL::A1::SetupTailOperatorName(), NPL::A1::Forms::SetWithNoRecursion(), NPL::A1::Forms::SetWithRecursion(), NPL::TermToString(), NPL::TermToStringWithReferenceMark(), NPL::TermToTags(), NPL::ThrowListTypeErrorForInvalidType(), NPL::A1::ThrowValueCategoryErrorForFirstArgument(), NPL::TokenizeTerm(), NPL::TryAccessLeaf(), NPL::TryAccessReferencedLeaf(), NPL::TryAccessReferencedTerm(), NPL::TryAccessTerm(), NPL::A1::Forms::Undefine(), NPL::A1::Forms::UndefineChecked(), NPL::A1::Forms::Unless(), NPL::A1::Forms::Unwrap(), NPL::A1::Forms::ValueOf(), NPL::A1::Forms::Vau(), NPL::A1::Forms::VauRef(), NPL::A1::Forms::VauWithEnvironment(), NPL::A1::Forms::VauWithEnvironmentRef(), ystdex::basic_tstring_view< _tChar, _tTraits, 0 >::verify_term(), NPL::A1::Forms::When(), NPL::A1::Forms::Wrap(), NPL::A1::Forms::WrapOnce(), NPL::A1::Forms::WrapOnceRef() , 以及 NPL::A1::Forms::WrapRef().

NPL::A1::Internals::term
_fCurrent TermNode &decltype(cur(term, ctx)) term
Definition: NPLA1Internals.h:593
NPL::A1::Internals::cur
_fCurrent && cur
Definition: NPLA1Internals.h:591
ystdex::unref
_type & unref(_type &&x)
解除引用包装。
Definition: ref.hpp:243