2023年政策修订增补工作正在进行中,欢迎参与!
  • Moegirl.ICU:萌娘百科流亡社群 581077156(QQ),欢迎对萌娘百科运营感到失望的编辑者加入
  • Moegirl.ICU:账号认领正在试运行,有意者请参照账号认领流程

模块:TextPredicate/doc

萌娘百科,万物皆可萌的百科全书!转载请标注来源页面的网页链接,并声明引自萌娘百科。内容不可商用。
跳转到导航 跳转到搜索

这是Module:TextPredicate的文档页面

简介

TextPredicate用于解析一个text文本构成的布尔表达式。能够解析一段满足格式要求的文本作为表达式。可以进行与或非操作,可以进行判断。供其他模块调用。如textPredicate=require("Moudle:TextPredicate")

属性

符号

为避免与维基文本使用的特殊字符重复,允许符号重定义。

  • symbolOr:表示“或”的符号。默认为|
  • symbolAnd:表示“与”的符号。默认为&
  • symbolNot:表示“非”的符号。默认为-
  • symbolBrackets:表示“括号”的两个符号。默认为()

一般而言匹配文本时需要更改symbolOr符号,避免冲突。

  • _true:绝对为真的表达式。
  • _false:绝对为假的表达式。

函数

生成

textPredicate.createExpress(text)

识别文本并生成表达式。规则与通常的布尔表达式相同,除规定符号外文本皆视为变量。 在不改变符号的情况下,表达式可以表示如:a&-b|(a&c)。也可以表示如变量1|这个&(那个|-变量b)

判断

textPredicate:__call(names)

textPredicate(names)对一组变量表进行判断,判别表达式下是否成立。该表内应为变量名symbolNot变量名,表示真或假。

textPredicate:__eq(other)

textPredicate==other,判断表达式内容实质是否相同。

textPredicate:__le(other)

textPredicate<=other,判断表达式内容实质是否被后者包含。即该表达式成立时后者必然成立。

textPredicate:isReal(bool)

判断表达式是否恒为真/假。与textPredicate==textPredicate._truetextPredicate==textPredicate._false等效。 留空则判断表达式是否为真值。

计算

由于元方法支持有限,符号比较错乱。 自身运算表示并不返回值,而是将值赋值到第一个参数中。

textPredicate:__concat(other)

textPredicate..other,计算表达式的“与”。 自身运算为textPredicate:concat(other)

textPredicate:__add(other)

textPredicate+other,计算表达式的“或”。 自身运算为textPredicate:add(other)

textPredicate:__unm()

-textPredicate,计算表达式的“非”。 自身运算为textPredicate:unm(other)

textPredicate:__sub(other)

textPredicate-other,计算表达式的“差”。但如果调用方法则会同时返回表达式的“与”, 自身运算为textPredicate:sub(other)。返回表达式的“与”。

textPredicate:changeListClone(list)

list为一组变量文本。 计算表达式改变使用的变量组后的情况。默认不在list中的变量值均为true。 自身运算为textPredicate:changeList(other)

textPredicate:limitTo(list)

list为一组变量文本。 限制表达式使用的变量组,默认不在list中的变量值均为false

迭代器

textPredicate:gAllowNames()

依次返回表达式允许情况的bits值以及与之对应的一个变量文本的表。该表内容与#textPredicate:__call(names)一致。