YSTest: NPLA1Forms.h 文件参考

YSTest PreAlpha_b900_20201012 The YSLib Test Project

类 | 命名空间 | 函数
NPLA1Forms.h 文件参考
`#include "YModules.h"`
`#include <NPL/NPLA1.h>`
NPLA1Forms.h 的引用(Include)关系图:

浏览源代码.

## 类

struct | NPL::A1::Forms::UnaryExpansion< _func >
| 保存函数展开调用的函数对象。 更多...
struct | NPL::A1::Forms::UnaryAsExpansion< _type, _func >
struct | NPL::A1::Forms::BinaryExpansion< _func >
struct | NPL::A1::Forms::BinaryAsExpansion< _type, _type2, _func >

## 命名空间

| NPL
| NPL::A1
| NPL::A1::Forms
| NPLA1 语法形式对应的功能实现。

## 函数

YB_ATTR_nodiscard YF_API YB_PURE bool | NPL::A1::Forms::IsSymbol (const string &) ynothrow
| 判断字符串值是否可构成符号。 更多...
YB_ATTR_nodiscard YF_API YB_PURE TokenValue | NPL::A1::Forms::StringToSymbol (const string &)
| 创建等于指定字符串值的记号值。 更多...
YB_ATTR_nodiscard YF_API YB_PURE TokenValue | NPL::A1::Forms::StringToSymbol (string &&)
YB_ATTR_nodiscard YF_API YB_STATELESS const string & | NPL::A1::Forms::SymbolToString (const TokenValue &) ynothrow
| 取符号对应的名称字符串。 更多...
| NPL::A1::Forms::PDefH (ReductionStatus, Retain, const TermNode &term) ynothrowv ImplRet(AssertBranch(term)
| 保留项：保留求值。 更多...
ReductionStatus::Retained YF_API size_t | NPL::A1::Forms::RetainN (const TermNode &, size_t=1)
| 保留经检查确保具有指定个数参数的项：保留求值。 更多...
template<typename _func , typename... _tParams>
auto | NPL::A1::Forms::CallRawUnary (_func &&f, TermNode &term, _tParams &&... args) -> yimpl(decltype(ystdex::expand_proxy< void(TermNode &, _tParams &&...)> ::call(f, NPL::Deref(std::next(term.begin())), yforward(args)...)))
| 访问节点的子节点并调用一元函数。 更多...
template<typename _func >
auto | NPL::A1::Forms::CallResolvedUnary (_func &&f, TermNode &term) -> yimpl(decltype(NPL::ResolveTerm(yforward(f), term)))
| 解析节点的子节点并调用一元函数。 更多...
template<typename _type , typename _func , typename... _tParams>
auto | NPL::A1::Forms::CallResolvedUnaryAs (_func &&f, TermNode &term, _tParams &&... args) -> yimpl(decltype(ystdex::expand_proxy< void(_type &, const ResolvedTermReferencePtr &, _tParams &&...)>::call(f, NPL::Access< _type >(term), ResolvedTermReferencePtr(), std::forward< _tParams >(args)...)))
template<typename _type , typename _func , typename... _tParams>
auto | NPL::A1::Forms::CallRegularUnaryAs (_func &&f, TermNode &term, _tParams &&... args) -> yimpl(decltype(ystdex::expand_proxy< void(_type &, const ResolvedTermReferencePtr &, _tParams &&...)>::call(f, NPL::Access< _type >(term), ResolvedTermReferencePtr(), std::forward< _tParams >(args)...)))
template<typename _func , typename... _tParams>
void | NPL::A1::Forms::CallUnary (_func &&f, TermNode &term, _tParams &&... args)
| 访问节点并调用一元函数。 更多...
template<typename _type , typename _func , typename... _tParams>
void | NPL::A1::Forms::CallUnaryAs (_func &&f, TermNode &term, _tParams &&... args)
template<typename _func , typename... _tParams>
void | NPL::A1::Forms::CallBinary (_func &&f, TermNode &term, _tParams &&... args)
| 访问节点并调用二元函数。 更多...
template<typename _type , typename _type2 , typename _func , typename... _tParams>
void | NPL::A1::Forms::CallBinaryAs (_func &&f, TermNode &term, _tParams &&... args)
template<typename _type , typename _func , typename... _tParams>
void | NPL::A1::Forms::CallBinaryFold (_func f, _type val, TermNode &term, _tParams &&... args)
| 访问节点并以指定的初始值为基础逐项调用二元函数。 更多...
template<size_t _vWrapping = Strict, typename _func , class _tTarget >
void | NPL::A1::Forms::RegisterUnary (_tTarget &target, string_view name, _func f)
| 注册一元严格求值上下文处理器。 更多...
template<size_t _vWrapping = Strict, typename _type , typename _func , class _tTarget >
void | NPL::A1::Forms::RegisterUnary (_tTarget &target, string_view name, _func f)
template<size_t _vWrapping = Strict, typename _func , class _tTarget >
void | NPL::A1::Forms::RegisterBinary (_tTarget &target, string_view name, _func f)
| 注册二元严格求值上下文处理器。 更多...
template<size_t _vWrapping = Strict, typename _type , typename _type2 , typename _func , class _tTarget >
void | NPL::A1::Forms::RegisterBinary (_tTarget &target, string_view name, _func f)
YF_API void | NPL::A1::Forms::Equal (TermNode &)
| 比较两个子项表示的值引用相同的对象。 更多...
YF_API void | NPL::A1::Forms::EqualLeaf (TermNode &)
| 比较两个子项的值相等。 更多...
YF_API void | NPL::A1::Forms::EqualReference (TermNode &)
| 比较两个子项的值引用相同的对象。 更多...
YF_API void | NPL::A1::Forms::EqualValue (TermNode &)
| 比较两个子项表示的值相等。 更多...
YF_API ReductionStatus | NPL::A1::Forms::If (TermNode &, ContextNode &)
| 分支判断：根据求值的条件选取表达式求值。 更多...
YF_API ReductionStatus | NPL::A1::Forms::Cond (TermNode &, ContextNode &)
| 条件分支选择：根据条件列表顺序选取第一个符合其中条件对应的表达式求值。 更多...
YF_API ReductionStatus | NPL::A1::Forms::When (TermNode &, ContextNode &)
| 条件顺序求值：预期条件成立。 更多...
YF_API ReductionStatus | NPL::A1::Forms::Unless (TermNode &, ContextNode &)
| 条件顺序求值：预期条件不成立。 更多...
YF_API YB_PURE bool | NPL::A1::Forms::Not (TermNode &)
| 逻辑非。 更多...
YF_API ReductionStatus | NPL::A1::Forms::And (TermNode &, ContextNode &)
| 支持短路求值的逻辑与。 更多...
YF_API ReductionStatus | NPL::A1::Forms::Or (TermNode &, ContextNode &)
| 支持短路求值的逻辑或。 更多...
YF_API ReductionStatus | NPL::A1::Forms::Cons (TermNode &)
| 接受两个参数，返回以第一参数作为第一个元素插入第二参数创建的新的列表。 更多...
YF_API ReductionStatus | NPL::A1::Forms::ConsRef (TermNode &)
YF_API ReductionStatus | NPL::A1::Forms::ForwardListFirst (TermNode &, ContextNode &)
| 取列表的第一元素并转发给指定的应用子。 更多...
YF_API ReductionStatus | NPL::A1::Forms::First (TermNode &)
| 取参数指定的列表中的第一元素的引用值。 更多...
YF_API ReductionStatus | NPL::A1::Forms::FirstAt (TermNode &)
YF_API ReductionStatus | NPL::A1::Forms::FirstRef (TermNode &)
YF_API ReductionStatus | NPL::A1::Forms::FirstVal (TermNode &)
YF_API void | NPL::A1::Forms::SetFirst (TermNode &)
| 修改第一参数指定的列表以第二参数作为第一个元素。 更多...
YF_API void | NPL::A1::Forms::SetFirstAt (TermNode &)
YF_API void | NPL::A1::Forms::SetFirstRef (TermNode &)
YF_API void | NPL::A1::Forms::SetRest (TermNode &)
| 修改第一参数指定的列表以第二参数作为第一个元素外的列表。 更多...
YF_API void | NPL::A1::Forms::SetRestRef (TermNode &)
YF_API ReductionStatus | NPL::A1::Forms::Eval (TermNode &, ContextNode &)
| 对指定项以指定的环境求值。 更多...
YF_API ReductionStatus | NPL::A1::Forms::EvalRef (TermNode &, ContextNode &)
YF_API ReductionStatus | NPL::A1::Forms::EvalString (TermNode &, ContextNode &)
| 在参数指定的环境中求值作为外部表示的字符串。 更多...
YF_API ReductionStatus | NPL::A1::Forms::EvalStringRef (TermNode &, ContextNode &)
| 在参数指定的环境中求值作为外部表示的字符串。 更多...
YF_API ReductionStatus | NPL::A1::Forms::EvalUnit (TermNode &)
| 在参数指定的 REPL 环境中规约字符串表示的翻译单元以求值。 更多...
YF_API void | NPL::A1::Forms::MakeEnvironment (TermNode &)
| 创建以参数指定的环境列表作为父环境的新环境。 更多...
YF_API void | NPL::A1::Forms::GetCurrentEnvironment (TermNode &, ContextNode &)
| 取当前环境的引用。 更多...
YF_API void | NPL::A1::Forms::LockCurrentEnvironment (TermNode &, ContextNode &)
| 锁定当前环境的引用。 更多...
YF_API ReductionStatus | NPL::A1::Forms::ValueOf (TermNode &, const ContextNode &)
| 求值标识符得到指称的实体。 更多...
YF_API ReductionStatus | NPL::A1::Forms::DefineLazy (TermNode &, ContextNode &)
| 以惰性求值的表达式定义值。 更多...
YF_API ReductionStatus | NPL::A1::Forms::DefineWithNoRecursion (TermNode &, ContextNode &)
| 不带递归匹配的定义。 更多...
YF_API ReductionStatus | NPL::A1::Forms::DefineWithRecursion (TermNode &, ContextNode &)
| 带递归匹配的定义。 更多...
YF_API ReductionStatus | NPL::A1::Forms::SetWithNoRecursion (TermNode &, ContextNode &)
| 修改指定环境的绑定，不带递归匹配。 更多...
YF_API ReductionStatus | NPL::A1::Forms::SetWithRecursion (TermNode &, ContextNode &)
| 修改指定环境的绑定，带递归匹配。 更多...
YF_API void | NPL::A1::Forms::Undefine (TermNode &, ContextNode &)
| 移除定义引入的绑定。 更多...
YF_API void | NPL::A1::Forms::UndefineChecked (TermNode &, ContextNode &)
| 检查并移除名称绑定。 更多...
YF_API ReductionStatus | NPL::A1::Forms::Lambda (TermNode &, ContextNode &)
| λ 抽象：求值为一个捕获当前上下文的严格求值的函数。 更多...
YF_API ReductionStatus | NPL::A1::Forms::LambdaRef (TermNode &, ContextNode &)
YF_API ReductionStatus | NPL::A1::Forms::Vau (TermNode &, ContextNode &)
| vau 抽象：求值为一个捕获当前上下文的非严格求值的函数。 更多...
YF_API ReductionStatus | NPL::A1::Forms::VauRef (TermNode &, ContextNode &)
YF_API ReductionStatus | NPL::A1::Forms::VauWithEnvironment (TermNode &, ContextNode &)
| 带环境的 vau 抽象：求值为一个捕获当前上下文的非严格求值的函数。 更多...
YF_API ReductionStatus | NPL::A1::Forms::VauWithEnvironmentRef (TermNode &, ContextNode &)
YF_API ReductionStatus | NPL::A1::Forms::Wrap (TermNode &, ContextNode &)
| 包装合并子为应用子。 更多...
YF_API ReductionStatus | NPL::A1::Forms::WrapRef (TermNode &, ContextNode &)
| 包装合并子为应用子。 更多...
YF_API ReductionStatus | NPL::A1::Forms::WrapOnce (TermNode &, ContextNode &)
| 包装操作子为应用子。 更多...
YF_API ReductionStatus | NPL::A1::Forms::WrapOnceRef (TermNode &, ContextNode &)
| 包装操作子为应用子。 更多...
YF_API ReductionStatus | NPL::A1::Forms::Unwrap (TermNode &, ContextNode &)
| 解包装应用子为合并子。 更多...
YF_API ReductionStatus | NPL::A1::Forms::CheckEnvironment (TermNode &)
| 检查参数指定的项表示环境。 更多...
YF_API ReductionStatus | NPL::A1::Forms::CheckListReference (TermNode &)
| 检查参数指定的项表示非空列表的引用。 更多...
YF_API ReductionStatus | NPL::A1::Forms::MakeEncapsulationType (TermNode &)
| 创建封装类型。 更多...
YF_API ReductionStatus | NPL::A1::Forms::Sequence (TermNode &, ContextNode &)
| 序列有序参数规约：移除第一项后顺序规约子项，结果为最后一个子项的规约结果。 更多...
YF_API ReductionStatus | NPL::A1::Forms::Apply (TermNode &, ContextNode &)
| 函数应用：应用参数指定的函数和作为函数参数的列表。 更多...
YF_API ReductionStatus | NPL::A1::Forms::ListAsterisk (TermNode &)
| 使用可选的参数指定的不定数量的元素和结尾列表构造新列表。 更多...
YF_API ReductionStatus | NPL::A1::Forms::ListAsteriskRef (TermNode &)
YF_API ReductionStatus | NPL::A1::Forms::AccL (TermNode &, ContextNode &)
| 在抽象列表元素上应用左结合的二元操作。 更多...
YF_API ReductionStatus | NPL::A1::Forms::AccR (TermNode &, ContextNode &)
| 在抽象列表元素上应用右结合的二元操作。 更多...
YF_API ReductionStatus | NPL::A1::Forms::FoldR1 (TermNode &, ContextNode &)
| 在列表元素上应用右结合的二元操作。 更多...
YF_API ReductionStatus | NPL::A1::Forms::Map1 (TermNode &, ContextNode &)
| 单列表映射操作。 更多...
YF_API void | NPL::A1::Forms::CallSystem (TermNode &)
| 调用 UTF-8 字符串的系统命令，并保存 int 类型的结果到项的值中。 更多...