YSTest: NPLA.h 文件参考

YSTest PreAlpha_b700_20160611 The YSLib Test Project

- 首页
- 相关页面
- 模块
- 命名空间
- 类
- 文件

- 文件列表
- 文件成员

类 | 命名空间 | 类型定义 | 函数
NPLA.h 文件参考
YFramework Library » Naming Protocol Language

NPLA 公共接口。 更多...

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

浏览源代码.

## 类

struct | NPL::NPLATag
| NPLA 元标签。 更多...
class | NPL::NPLException
| NPL 异常基类。 更多...
class | NPL::ListReductionFailure
| 列表规约失败。 更多...
class | NPL::InvalidSyntax
| 语法错误。 更多...
class | NPL::UndeclaredIdentifier
| 未声明标识符错误。 更多...
class | NPL::ArityMismatch
| 元数不匹配错误。 更多...
struct | NPL::PassesCombiner
| 遍合并器：逐次调用直至返回 true 。 更多...

## 命名空间

| NPL
| NPL::SXML
| SXML 表示。

## 类型定义

using | NPL::NodeMapper = std::function< ValueNode(const TermNode &)>
| 节点映射操作类型：变换节点为另一个节点。 更多...
using | NPL::IndentGenerator = std::function< string(size_t)>
| 生成前缀缩进的函数类型。 更多...
using | NPL::NodeToString = std::function< string(const ValueNode &)>
template<class _tCon >
using | NPL::GNodeInserter = std::function< void(TermNode &&, _tCon &)>
using | NPL::NodeInserter = GNodeInserter< TermNode::Container & >
using | NPL::NodeSequenceInserter = GNodeInserter< NodeSequence >
using | NPL::ContextNode = ValueNode
| 上下文节点类型。 更多...
using | NPL::ContextHandler = YSLib::GHEvent< void(TermNode &, ContextNode &)>
| 上下文处理器类型。 更多...
using | NPL::LiteralHandler = YSLib::GHEvent< bool(const ContextNode &)>
| 字面量处理器类型。 更多...

## 函数

YF_API string | NPL::EscapeNodeLiteral (const ValueNode &)
| 转义 NPLA 节点字面量。 更多...
YF_API string | NPL::LiteralizeEscapeNodeLiteral (const ValueNode &)
| 转义 NPLA 节点字面量。 更多...
YF_API string | NPL::ParseNPLANodeString (const ValueNode &)
| 解析 NPLA 节点字符串。 更多...
YF_API string | NPL::DefaultGenerateIndent (size_t)
| 生成水平制表符为单位的缩进。 更多...
YF_API void | NPL::PrintIndent (std::ostream &, IndentGenerator=DefaultGenerateIndent, size_t=1)
| 打印缩进。 更多...
YF_API void | NPL::PrintNode (std::ostream &, const ValueNode &, NodeToString=EscapeNodeLiteral, IndentGenerator=DefaultGenerateIndent, size_t=0)
| 打印 NPLA 节点。 更多...
YF_API void | NPL::PrintNodeChild (std::ostream &, const ValueNode &, NodeToString=EscapeNodeLiteral, IndentGenerator=DefaultGenerateIndent, size_t=0)
| 打印作为子节点的 NPLA 节点。 更多...
YF_API bool | NPL::PrintNodeString (std::ostream &, const ValueNode &, NodeToString=EscapeNodeLiteral)
| 打印节点字符串。 更多...
YF_API ValueNode | NPL::SXML::MakeXMLDecl (const string &={}, const string &="1.0", const string &="UTF-8", const string &={})
| 构造 SXML 文档 XML 声明节点。 更多...
YF_API ValueNode | NPL::SXML::MakeXMLDoc (const string &={}, const string &="1.0", const string &="UTF-8", const string &={})
| 构造包含 XML 声明的 SXML 文档节点。 更多...
| NPL::PDefH (void, RegisterContextHandler, ContextNode &node, const string &name, ContextHandler f) ImplExpr(node[name].Value
| 注册上下文处理器。 更多...
YF_API observer_ptr< const ValueNode > | NPL::LookupName (const ContextNode &, const string &) ynothrow
| 从指定上下文查找名称对应的节点。 更多...
template<class _tNodeOrCon , typename... _tParams>
ValueNode::iterator | NPL::InsertSyntaxNode (_tNodeOrCon &&node_or_con, std::initializer_list< ValueNode > il, _tParams &&...args)
| 插入语法节点。 更多...
template<class _tNodeOrCon , typename _type , typename... _tParams>
ValueNode::iterator | NPL::InsertSyntaxNode (_tNodeOrCon &&node_or_con, _type &&arg, _tParams &&...args)
YF_API ValueNode | NPL::MapNPLALeafNode (const TermNode &)
| 映射 NPLA 叶节点。 更多...
YF_API ValueNode | NPL::TransformToSyntaxNode (const ValueNode &, const string &={})
| 变换节点为语法分析树叶节点。 更多...
template<class _tNodeOrCon >
ValueNode::iterator | NPL::InsertChildSyntaxNode (_tNodeOrCon &&node_or_con, ValueNode &child)
| 插入语法子节点。 更多...
template<class _tNodeOrCon >
ValueNode::iterator | NPL::InsertChildSyntaxNode (_tNodeOrCon &&node_or_con, ValueNode &&child)
template<class _tNodeOrCon >
ValueNode::iterator | NPL::InsertChildSyntaxNode (_tNodeOrCon &&node_or_con, const NodeLiteral &nl)
YF_API string | NPL::SXML::ConvertAttributeNodeString (const TermNode &)
| 转换 SXML 节点为 XML 属性字符串。 更多...
YF_API string | NPL::SXML::ConvertDocumentNode (const TermNode &, IndentGenerator=DefaultGenerateIndent, size_t=0, ParseOption=ParseOption::Normal)
| 转换 SXML 文档节点为 XML 字符串。 更多...
YF_API string | NPL::SXML::ConvertStringNode (const TermNode &)
| 转换 SXML 节点为被转义的 XML 字符串。 更多...
YF_API void | NPL::SXML::PrintSyntaxNode (std::ostream &os, const TermNode &, IndentGenerator=DefaultGenerateIndent, size_t=0)
| 打印 SContext::Analyze 分析取得的 SXML 语法树节点并刷新流。 更多...
template<typename... _tParams>
ValueNode | NPL::SXML::MakeTop (const string &name, _tParams &&...args)
| 构造 SXML 文档顶级节点。 更多...
| NPL::SXML::PDefH (ValueNode, MakeTop,) ImplRet(MakeTop(
| NPL::SXML::PDefH (NodeLiteral, MakeAttributeTagLiteral, std::initializer_list< NodeLiteral > il) ImplRet(
| 构造 SXML 属性标记字面量。 更多...
template<typename... _tParams>
NodeLiteral | NPL::SXML::MakeAttributeTagLiteral (_tParams &&...args)
| NPL::SXML::PDefH (NodeLiteral, MakeAttributeLiteral, const string &name, std::initializer_list< NodeLiteral > il) ImplRet(
| 构造 XML 属性字面量。 更多...
template<typename... _tParams>
NodeLiteral | NPL::SXML::MakeAttributeLiteral (const string &name, _tParams &&...args)
template<class _tNodeOrCon >
void | NPL::SXML::InsertAttributeNode (_tNodeOrCon &&node_or_con, const string &name, std::initializer_list< NodeLiteral > il)
| 插入只有 XML 属性节点到语法节点。 更多...
template<class _tNodeOrCon , typename... _tParams>
void | NPL::SXML::InsertAttributeNode (_tNodeOrCon &&node_or_con, const string &name, _tParams &&...args)
template<typename... _tParams>
using | NPL::GPasses = YSLib::GEvent< bool(_tParams...), YSLib::GCombinerInvoker< bool, PassesCombiner >>
| 一般合并遍。 更多...
using | NPL::TermPasses = GPasses< TermNode & >
| 项合并遍。 更多...
using | NPL::EvaluationPasses = GPasses< TermNode &, ContextNode & >
| 求值合并遍。 更多...
using | NPL::Guard = ystdex::any
| 作用域守护类型。 更多...
using | NPL::GuardPasses = YSLib::GEvent< Guard(TermNode &, ContextNode &), YSLib::GDefaultLastValueInvoker< Guard >>
| 作用域守护遍：用于需在规约例程的入口和出口关联执行的操作。 更多...
YF_API bool | NPL::DetectReducible (TermNode &, bool)
| 移除节点的空子节点，然后判断是否可继续规约。 更多...
| NPL::PDefH (void, LiftTerm, TermNode &term, TermNode &tm) ImplExpr(TermNode(std
| 使用第二个参数指定的项的内容替换第一个项的内容。 更多...

## 详细描述

NPLA 公共接口。

版本
  r884

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

自从
  build 663

创建时间:
  2016-01-07 10:32:34 +0800

修改时间:
  2016-06-01 12:28 +0800

文本编码:
  UTF-8

模块名称:
  NPL::NPLA

在文件 NPLA.h 中定义.