Package Exports
- nlcst-search
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (nlcst-search) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
nlcst-search
nlcst utility to search for patterns in a tree.
Install
This package is ESM only:
Node 12+ is needed to use it and it must be import
ed instead of require
d.
npm:
npm install nlcst-search
Use
import {search} from 'nlcst-search'
import {toString} from 'nlcst-to-string'
var tree = {
type: 'SentenceNode',
children: [
{
type: 'WordNode',
children: [
{type: 'TextNode', value: 'Don'},
{type: 'PunctuationNode', value: '’'},
{type: 'TextNode', value: 't'}
]
},
{type: 'WhiteSpaceNode', value: ' '},
{
type: 'WordNode',
children: [{type: 'TextNode', value: 'do'}]
},
{type: 'WhiteSpaceNode', value: ' '},
{
type: 'WordNode',
children: [
{type: 'TextNode', value: 'Block'},
{type: 'PunctuationNode', value: '-'},
{type: 'TextNode', value: 'level'}
]
}
]
}
search(tree, ['dont'], function(nodes) {
console.log(toString(nodes))
})
// `Don’t`
search(tree, ['do blocklevel'], function(nodes) {
console.log(toString(nodes))
})
// `do Block-level`
API
This package exports the following identifiers: search
.
There is no default export.
search(tree, patterns, handler[, allowApostrophes|options])
Search for patterns a tree.
Throws
Error
— When not given node
or patterns
.
Parameters
node
patterns
Patterns to search for (Array.<string>
or Object
).
If an Object
, uses its keys as patterns.
Each pattern is a space-delimited list of words, where each word is
normalized to remove casing, apostrophes, and dashes.
Spaces in a pattern mean zero or more white space nodes in the tree.
Instead of a word, it’s also possible to use a wildcard symbol (*
, an
asterisk), that matches any word in a pattern (alpha * charlie
).
handler
Handler invoked when a match is found (Function
).
allowApostrophes
Treated as options.allowApostrophes
.
options.allowApostrophes
Passed to nlcst-normalize
(boolean
, default: false
).
options.allowDashes
Passed to nlcst-normalize
(boolean
, default: false
).
options.allowLiterals
Include literal phrases (boolean
, default: false
).
function handler(nodes, index, parent, pattern)
Handler invoked when a match is found.
Parameters
nodes
List of siblings that match pattern
(Array.<Node>
).
index
Index where the match starts in parent
(number
).
parent
pattern
The matched pattern (string
).
Related
nlcst-normalize
— Normalize a word for easier comparisonnlcst-is-literal
— Check whether a node is meant literally
Contribute
See contributing.md
in syntax-tree/.github
for ways to get
started.
See support.md
for ways to get help.
This project has a code of conduct. By interacting with this repository, organization, or community you agree to abide by its terms.