YSTest: SContext.h 文件参考

YSTest PreAlpha_b900_20201012 The YSLib Test Project

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

S 表达式上下文。 更多...

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

浏览源代码.

## 类

class | NPL::ReaderState
| 读取器状态：支持解析一个记号或列表的解析器的辅助状态。 更多...
class | NPL::Session
| 会话：分析组成 NPL 基本翻译单元的源代码。 更多...

## 命名空间

| NPL
| NPL::SContext
| S 表达式上下文：处理 S 表达式。

## 类型定义

using | TNIter = TermNode::iterator
using | NPL::TNCIter = TermNode::const_iterator

## 枚举

enum | NPL::TermTagIndices : size_t { NPL::UnqualifiedIndex = 0, NPL::UniqueIndex, NPL::NonmodifyingIndex, NPL::TemporaryIndex }
| 项标签索引：指定项标签元数据掩码的位。 更多...
enum | TermTags
| 标签：表示引用元数据的位。 更多...

## 函数

const TermTags &tags ynothrow | NPL::ImplRet (tags &~TermTags::Temporary) class YF_API TermNode
| 项节点：存储语法分析结果的值类型节点。 更多...
YB_ATTR_nodiscard YB_PURE | NPL::PDefH (bool, IsBranch, const TermNode &term) ynothrow ImplRet(!term.empty()) YB_ATTR_nodiscard YB_PURE inline PDefH(bool
| 项节点分类判断操作。 更多...
YB_ATTR_nodiscard YB_PURE const TermNode &term ynothrow | NPL::ImplRet (!(term.empty()||term.Value)) YB_ATTR_nodiscard YB_PURE inline PDefH(bool
| 判断项是否为空节点。 更多...
YB_ATTR_nodiscard YB_PURE const TermNode &term ynothrow const TermNode &term ynothrow | NPL::ImplRet (!term) YB_ATTR_nodiscard YB_PURE inline PDefH(bool
| 判断项是否为扩展列表节点。 更多...
YB_ATTR_nodiscard YB_PURE const TermNode &term ynothrow const TermNode &term ynothrow const TermNode &term ynothrow | NPL::ImplRet (!(term.empty() &&term.Value)) YB_ATTR_nodiscard YB_PURE inline PDefH(bool
| 判断项是否为叶节点。 更多...
YB_ATTR_nodiscard YB_PURE const TermNode &term ynothrow const TermNode &term ynothrow const TermNode &term ynothrow const TermNode &term ynothrow | NPL::ImplRet (term.empty()) YB_ATTR_nodiscard YB_PURE inline PDefH(bool
| 判断项是否为列表节点。 更多...
template<typename _type >
YB_ATTR_nodiscard YB_PURE const TermNode &term ynothrow const TermNode &term ynothrow const TermNode &term ynothrow const TermNode &term ynothrow const TermNode &term ynothrow ImplRet(!term.Value) using YSLib YB_ATTR_nodiscard YB_PURE _type & | NPL::Access (TermNode &term)
template<typename _type >
YB_ATTR_nodiscard YB_PURE const _type & | NPL::Access (const TermNode &term)
template<typename _type >
YB_ATTR_nodiscard YB_PURE observer_ptr< _type > | NPL::AccessPtr (TermNode &term) ynothrow
template<typename _type >
YB_ATTR_nodiscard YB_PURE observer_ptr< const _type > | NPL::AccessPtr (const TermNode &term) ynothrow
| NPL::PDefH (void, AssertBranch, const TermNode &term, const char *msg="Invalid term found.") ynothrowv ImplExpr(yunused(term)
| 断言枝节点。 更多...
| NPL::yunused (msg)
| NPL::YAssert (IsBranch(term), msg)) template< typename... _tParam
| 创建项节点。 更多...
typename _tParams YB_ATTR_nodiscard YB_PURE ystdex::enable_if_t< ystdex::not_< ystdex::cond_or_t< ystdex::bool_<(sizeof...(_tParams) >=1)>, ystdex::false_, std::is_convertible, ystdex::decay_t< _tParams >..., TermNode::allocator_type > >::value, TermNode > | NPL::AsTermNode (_tParams &&... args)
template<typename... _tParams>
YB_ATTR_nodiscard YB_PURE TermNode | NPL::AsTermNode (TermNode::allocator_type a, _tParams &&... args)
YB_ATTR_nodiscard YB_PURE | NPL::PDefH (ValueObject, GetValueOf, observer_ptr< const TermNode > p_term) ImplRet(ystdex
| 根据节点和节点容器创建操作设置目标节点的值或子节点。 更多...
template<typename _fCallable , class _tNode >
void | NPL::TraverseSubnodes (_fCallable f, const _tNode &node)
| 遍历子节点。 更多...
template<typename _type >
YB_ATTR_nodiscard YB_PURE bool | NPL::HasValue (const TermNode &term, const _type &x)
| 检查项节点是否具有指定的值。 更多...
template<class _type , yimpl(typename=ystdex::enable_if_convertible_t< const _type &, const LexemeList::value_type & >) >
YB_ATTR_nodiscard YB_STATELESS const _type & | NPL::ToLexeme (const _type &val) ynothrow
| 转换参数为词素。 更多...
YB_ATTR_nodiscard YB_PURE | NPL::PDefH (const string &, ToLexeme, const SourcedByteParser::ParseResult::value_type &val) ynothrow ImplRet(val.second) struct LexemeTokenizer
| 词素标记器：转换输入为以词素为作为值数据成员的节点。 更多...
template<typename _tIn >
YB_ATTR_nodiscard _tIn | NPL::SContext::Validate (_tIn first, _tIn last)
| 遍历记号列表，验证基本合法性：圆括号是否对应。 更多...
template<typename _tIn , typename _fTokenize >
YB_ATTR_nodiscard _tIn | NPL::SContext::Reduce (TermNode &term, _tIn first, _tIn last, _fTokenize tokenize)
| 遍历规约记号列表，取抽象语法树储存至指定值类型节点。 更多...
template<typename _tIn >
YB_ATTR_nodiscard _tIn | NPL::SContext::Reduce (TermNode &term, _tIn first, _tIn last)
template<class _tParseResult >
void | NPL::SContext::Analyze (TermNode &root, const _tParseResult &parse_result)
| 分析指定源，取抽象语法树储存至指定值类型节点。 更多...
template<typename _fParse >
void | NPL::SContext::Analyze (TermNode &root, const Session &sess, const _fParse &parse)
template<class _tParseResult , typename _fTokenize >
void | NPL::SContext::Analyze (TermNode &root, _fTokenize tokenize, const _tParseResult &parse_result)
template<typename _fParse , typename _fTokenize >
void | NPL::SContext::Analyze (TermNode &root, _fTokenize tokenize, const Session &sess, const _fParse &parse)
template<typename _tParam , typename... _tParams, yimpl(ystdex::exclude_self_t< TermNode, _tParam, int >=0) >
YB_ATTR_nodiscard | NPL::SContext::yimpl (ystdex::exclude_self_t)< std
template<typename... _tParams>
YB_ATTR_nodiscard TermNode | NPL::SContext::Analyze (std::allocator_arg_t, TermNode::allocator_type a, _tParams &&... args)

## 变量

| NPL::GetLValueTagsOf
YB_ATTR_nodiscard YB_PURE | NPL::IsBranchedList
YB_ATTR_nodiscard YB_PURE const TermNode &term ynothrow | NPL::IsEmpty
YB_ATTR_nodiscard YB_PURE const TermNode &term ynothrow const TermNode &term ynothrow | NPL::IsExtendedList
YB_ATTR_nodiscard YB_PURE const TermNode &term ynothrow const TermNode &term ynothrow const TermNode &term ynothrow | NPL::IsLeaf
YB_ATTR_nodiscard YB_PURE const TermNode &term ynothrow const TermNode &term ynothrow const TermNode &term ynothrow const TermNode &term ynothrow | NPL::IsList

## 详细描述

S 表达式上下文。

版本
  r3805

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

自从
  build 304

创建时间:
  2012-08-03 19:55:41 +0800

修改时间:
  2020-10-06 21:19 +0800

文本编码:
  UTF-8

模块名称:
  NPL::SContext

在文件 SContext.h 中定义.

## 类型定义说明

## ◆ TNIter

using TNIter = TermNode::iterator

自从
  build 674

在文件 SContext.h 第 501 行定义.

## 枚举类型说明

## ◆ TermTags

enum TermTags

related

标签：表示引用元数据的位。

指定项引用具有的元数据。选项为位掩码值。

在文件 SContext.h 第 107 行定义.