YSTest: NPLA1.h 文件参考

YSTest PreAlpha_b900_20201012 The YSLib Test Project

类 | 命名空间 | 类型定义 | 枚举 | 函数 | 变量
NPLA1.h 文件参考
YFramework Library » Naming Protocol Language | YFramework Library » Naming Protocol Language

NPLA1 公共接口。 更多...

`#include "YModules.h"`
`#include <NPL/NPLA.h>`
`#include <YSLib/Core/YEvent.hpp>`
`#include <ystdex/algorithm.hpp>`
`#include <ystdex/cast.hpp>`
`#include <ystdex/scope_guard.hpp>`
NPLA1.h 的引用(Include)关系图:
此图展示该文件直接或间接的被哪些文件引用了:

浏览源代码.

## 类

struct | NPL::A1::NPLA1Tag
| NPLA1 元标签。 更多...
class | NPL::A1::Continuation
| NPLA1 一等续延。 更多...
struct | NPL::A1::PassesCombiner
| 遍合并器：逐次调用序列中的遍直至成功。 更多...
class | NPL::A1::ContextState
| NPLA1 上下文状态。 更多...
struct | NPL::A1::SeparatorTransformer
| 中缀分隔符变换器。 更多...
class | NPL::A1::WrappedContextHandler< _func >
| 包装上下文处理器。 更多...
class | NPL::A1::FormContextHandler
| 形式上下文处理器。 更多...
class | NPL::A1::REPLContext
struct | NPL::A1::REPLContext::LeafConverter

## 命名空间

| NPL
| NPL::A1

## 类型定义

using | NPL::A1::ContextHandler = YSLib::GHEvent< ReductionStatus(TermNode &, ContextNode &)>
| 上下文处理器类型。 更多...
using | NPL::A1::LiteralHandler = YSLib::GHEvent< ReductionStatus(const ContextNode &)>
| 字面量处理器类型。 更多...
template<typename... _tParams>
using | NPL::A1::GPasses = YSLib::GEvent< ReductionStatus(_tParams...), YSLib::GCombinerInvoker< ReductionStatus, PassesCombiner > >
| 一般合并遍。 更多...
using | NPL::A1::TermPasses = GPasses< TermNode & >
| 项合并遍。 更多...
using | NPL::A1::EvaluationPasses = GPasses< TermNode &, ContextNode & >
| 求值合并遍。 更多...
using | NPL::A1::LiteralPasses = GPasses< TermNode &, ContextNode &, string_view >
| 字面量合并遍。 更多...
using | NPL::A1::Guard = any
| 作用域守卫类型。 更多...
using | NPL::A1::GuardPasses = YSLib::GEvent< Guard(TermNode &, ContextNode &), YSLib::GDefaultLastValueInvoker< Guard > >
| 作用域守卫遍：用于需在规约例程的入口和出口关联执行的操作。 更多...
using | NPL::A1::EnvironmentGuard = ystdex::guard< EnvironmentSwitcher >
| 求值环境守卫。 更多...
template<typename _fParse >
using | NPL::A1::GParsedValue = typename ParseResultOf< _fParse >::value_type
| 解析结果元素类型。 更多...
template<typename _fParse >
using | NPL::A1::GTokenizer = function< TermNode(const GParsedValue< _fParse > &)>
| 泛型标记器：分析解析结果元素转换为可能包含记号的节点。 更多...
using | NPL::A1::Tokenizer = GTokenizer< ByteParser >
| 标记器：分析词素转换为可能包含记号的节点。 更多...
using | NPL::A1::SourcedTokenizer = GTokenizer< SourcedByteParser >
| 标记器：分析带有源代码位置信息的词素转换为可能包含记号的节点。 更多...

## 枚举

enum | NPL::A1::ValueToken { NPL::A1::ValueToken::Null, NPL::A1::ValueToken::Undefined, NPL::A1::ValueToken::Unspecified, NPL::A1::ValueToken::GroupingAnchor, NPL::A1::ValueToken::OrderedAnchor }
| 值记号：节点中的值的占位符。 更多...
enum | NPL::A1::WrappingKind : decltype(FormContextHandler::Wrapping) { NPL::A1::Form = 0, NPL::A1::Strict = 1 }
| 包装数种类枚举。 更多...

## 函数

YB_NORETURN YF_API void | NPL::A1::ThrowInsufficientTermsError ()
| 抛出缺少项的异常。 更多...
YB_NORETURN YF_API | NPL::A1::YB_NONNULL (1) void ThrowInvalidSyntaxError(const char *)
| 抛出参数指定消息的语法错误异常。 更多...
YB_NORETURN YF_API void | NPL::A1::ThrowInvalidSyntaxError (string_view)
YB_NORETURN YF_API void | NPL::A1::ThrowNonmodifiableErrorForAssignee ()
| 抛出被赋值操作数不可修改的异常。 更多...
YB_NORETURN | NPL::A1::PDefH (void, ThrowUnsupportedLiteralError, string_view sv) ImplExpr(ThrowUnsupportedLiteralError(sv.data())) YB_NORETURN YF_API void ThrowValueCategoryErrorForFirstArgument(const TermNode &)
| 抛出第一参数不符合预期值类别的异常。 更多...
PDefH(ReductionStatus, Continuation::operator(), ContextNode &ctx) const ImplRet(Handler(ContextState YF_API void | NPL::A1::ReduceArguments (TNIter, TNIter, ContextNode &)
| NPLA1 表达式节点规约：调用至少一次求值例程规约子表达式。 更多...
| NPL::A1::PDefH (void, ReduceArguments, TermNode &term, ContextNode &ctx) ImplRet(ReduceArguments(term.begin()
term | NPL::A1::end ()
term ctx YF_API void | NPL::A1::ReduceChildren (TNIter, TNIter, ContextNode &)
| 规约子项。 更多...
| NPL::A1::PDefH (void, ReduceChildren, TermNode &term, ContextNode &ctx) ImplExpr(ReduceChildren(term.begin()
term ctx YF_API ReductionStatus | NPL::A1::ReduceChildrenOrdered (TNIter, TNIter, ContextNode &)
| 有序规约子项。 更多...
| NPL::A1::PDefH (ReductionStatus, ReduceChildrenOrdered, TermNode &term, ContextNode &ctx) ImplRet(ReduceChildrenOrdered(term.begin()
term ctx YF_API ReductionStatus | NPL::A1::ReduceFirst (TermNode &, ContextNode &)
| 规约第一个子项。 更多...
YF_API ReductionStatus | NPL::A1::ReduceOnce (TermNode &, ContextNode &)
| NPLA1 表达式节点一次规约：转发调用到 NPLA1 表达式节点一次规约续延并调用。 更多...
| NPL::A1::PDefH (ReductionStatus, ReduceOnceLifted, TermNode &term, ContextNode &ctx, TermNode &tm) ImplRet(LiftOther(term
| 再次规约提升后的项。 更多...
| NPL::A1::ReduceOnce (term, ctx)) YF_API ReductionStatus ReduceOrdered(TermNode &
| 规约有序序列：顺序规约子项，结果为最后一个子项的规约结果。 更多...
ContextNode &YF_API ReductionStatus | NPL::A1::ReduceTail (TermNode &, ContextNode &, TNIter)
| 移除容器第一个子项到指定迭代器的项后规约。 更多...
| NPL::A1::PDefH (ReductionStatus, ReduceReturnUnspecified, TermNode &term) ynothrow ImplRet((term.Value
| 规约至确定的未指定值。 更多...
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)
| 分析参数指定的带有源代码信息和叶节点词素。 更多...
template<class _tDst , typename _func >
YB_ATTR_nodiscard YB_PURE _tDst | NPL::A1::WrapContextHandler (_func &&h, ystdex::false_)
template<class , typename _func >
YB_ATTR_nodiscard YB_PURE _func | NPL::A1::WrapContextHandler (_func &&h, ystdex::true_)
template<class _tDst , typename _func >
YB_ATTR_nodiscard YB_PURE _tDst | NPL::A1::WrapContextHandler (_func &&h)
template<class _tDst , typename _func , class _tAlloc >
YB_ATTR_nodiscard YB_PURE _tDst | NPL::A1::WrapContextHandler (_func &&h, const _tAlloc &a, ystdex::false_)
template<class , typename _func , class _tAlloc >
YB_ATTR_nodiscard YB_PURE _func | NPL::A1::WrapContextHandler (_func &&h, const _tAlloc &, ystdex::true_)
template<class _tDst , typename _func , class _tAlloc >
YB_ATTR_nodiscard YB_PURE _tDst | NPL::A1::WrapContextHandler (_func &&h, const _tAlloc &a)
template<size_t _vWrapping = Strict, class _tTarget , typename... _tParams>
void | NPL::A1::RegisterHandler (_tTarget &target, string_view name, _tParams &&... args)
| 注册一般形式上下文处理器。 更多...
template<class _tTarget , typename... _tParams>
void | NPL::A1::RegisterForm (_tTarget &target, string_view name, _tParams &&... args)
| 注册一般形式上下文处理器。 更多...
template<class _tTarget , typename... _tParams>
void | NPL::A1::RegisterStrict (_tTarget &target, string_view name, _tParams &&... args)
| 注册严格上下文处理器。 更多...
YB_ATTR_nodiscard YB_PURE | NPL::A1::PDefH (size_t, FetchArgumentN, const TermNode &term) ynothrowv ImplRet(AssertBranch(term)
| 取项的参数个数：子项数减 1 。 更多...
YB_ATTR_nodiscard YB_PURE term | NPL::A1::size () - 1) YF_API ReductionStatus DefaultEvaluateLeaf(TermNode &
| 字面量和数值的叶节点求值默认实现。 更多...
YF_API ReductionStatus | NPL::A1::EvaluateIdentifier (TermNode &, const ContextNode &, string_view)
| 求值标识符。 更多...
YF_API ReductionStatus | NPL::A1::EvaluateLeafToken (TermNode &, ContextNode &, string_view)
| 求值叶节点记号。 更多...
| NPL::A1::PDefH (void, EvaluateLiteralHandler, TermNode &term, const ContextNode &ctx, const TermNode &tm) ImplExpr([&]
| 若第三参数指定的项表示字面量处理器则调用并以结果其正规化第一参数指定的项。 更多...
YB_ATTR_nodiscard YB_PURE | NPL::A1::PDefH (bool, IsCombiningTerm, const TermNode &term) ynothrow ImplRet(!(term.empty()||(term.Value &&term.Value.type() !
| 判断项是规约合并项。 更多...
YF_API ReductionStatus | NPL::A1::ReduceCombinedBranch (TermNode &, ContextNode &)
| 规约列表合并项：同 ReduceCombined ，但只适用于枝节点。 更多...
YB_FLATTEN | NPL::A1::PDefH (ReductionStatus, ReduceNextCombinedBranch, TermNode &term, ContextState &cs) ImplRet(cs.SetNextTermRef(term)
| 规约列表合并项：同 ReduceCombinedBranch ，但先设置 NPLA1 上下文的下一项。 更多...
YB_FLATTEN | NPL::A1::ReduceCombinedBranch (term, cs)) YF_API ReductionStatus ReduceCombinedReferent(TermNode &
| 规约列表合并项：同 ReduceCombined ，但使用第三参数指定的值。 更多...
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)
| 函数调用规约（ β-规约）。 更多...
template<typename _func >
auto | NPL::A1::CheckSymbol (string_view n, _func f) -> decltype(f())
| 检查记号值是符合匹配条件的符号。 更多...
template<typename _func >
auto | NPL::A1::CheckParameterLeafToken (string_view n, _func f) -> decltype(f())
| 检查记号值是符合匹配条件的参数符号。 更多...
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)
| 添加全局类型名称表项。 更多...
template<typename _type >
void | NPL::A1::InitializeTypeNameTableEntry (string_view desc)
| 初始化全局类型名称表项。 更多...
template<class _tTarget , typename _func , typename _fCallable >
YB_ATTR_nodiscard YB_PURE _fCallable | NPL::A1::NameExpandedHandler (_fCallable &&x, string_view desc)
| 初始化作为扩展调用者的全局类型名称表项并转发参数。 更多...
template<typename _fCallable >
YB_ATTR_nodiscard YB_PURE _fCallable | NPL::A1::NameTypedContextHandler (_fCallable &&x, string_view desc)
| 初始化作为上下文处理器的全局类型名称表项并转发参数。 更多...
template<typename _type >
YB_ATTR_nodiscard YB_PURE _type | NPL::A1::NameTypedObject (_type &&x, string_view desc)
| 初始化全局类型名称表项并转发参数。 更多...
template<typename _fCallable >
YB_ATTR_nodiscard YB_PURE _fCallable | NPL::A1::NameTypedReducerHandler (_fCallable &&x, string_view desc)
| 初始化作为规约器处理器的全局类型名称表项并转发参数。 更多...
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 &)
| 设置当前尾动作规约的操作符名称。 更多...

## 变量

| NPL::A1::tm
YB_ATTR_nodiscard YB_PURE term | NPL::A1::string_view
const char * | NPL::A1::name
const char _tParams && | NPL::A1::args

## 详细描述

NPLA1 公共接口。

NPLA1 语法形式。

版本
  r8439

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

自从
  build 472

创建时间:
  2014-02-02 17:58:24 +0800

修改时间:
  2020-10-05 22:33 +0800

文本编码:
  UTF-8

模块名称:
  NPL::NPLA1

版本
  r7711

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

自从
  build 882

创建时间:
  2020-02-15 11:19:21 +0800

修改时间:
  2020-09-29 12:17 +0800

文本编码:
  UTF-8

模块名称:
  NPL::NPLA1Forms

在文件 NPLA1.h 中定义.