Skip to content

utility to search for patterns in an nlcst tree

License

Notifications You must be signed in to change notification settings

syntax-tree/nlcst-search

Repository files navigation

nlcst-search Build Status Coverage Status

Search for patterns in an NLCST tree.

Installation

npm:

npm install nlcst-search

Usage

var search = require('nlcst-search')
var toString = require('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

search(node, patterns, handler[, allowApostrophes|options])

Search for patterns in an NLCST tree.

Throws

Error — When not given node or patterns.

Parameters
node

Tree to search in (Node).

patterns

Patterns to search for (Array.<string> or Object). If an Object, uses its keys. 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.

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 which match pattern (Array.<Node>).

index

Position at which the match starts in parent (number).

parent

Parent node of nodes (Node).

pattern

The matched pattern (string).

Contribute

See contributing.md in syntax-tree/nlcst for ways to get started.

This organisation has a Code of Conduct. By interacting with this repository, organisation, or community you agree to abide by its terms.

License

MIT © Titus Wormer