1.6.0 • Published 7 years ago

function-automata v1.6.0

Weekly downloads
1
License
MIT
Repository
github
Last release
7 years ago

function-automata

This is a NodeJS Finite Automata package. This package supports CF-DFAs and CS-DFAs. However, all accept states must be context free (which does not reduce the size of parsable languages). This package is a 0-look ahead state machine.

const Automata = require('function-automata');

constructor

var automata = new Automata(states, transitions, accept_states, start_state);
states

This is an array of strings. These are the names of the nodes in the state machine.

transitions

This is an array of arrays of the following format: 1. {String} - name of the state that this transition will originate from 2. {String} - name of the state that is the destination of the transition 3. {function} - the function that determines if this transition is followed. The parameters are as follows:

  • token {String} - the next token to be analysed
  • state {Object} - the state machine data object. Here can be stored information that help with matching things like brackets
accept_states

This is an array of state names that count as accept states or if the machine ends on one of these then the matching is correct

start_state

This is the name of the state which will be first used to make transitions. Starting in the start state is assumed and does not consume a token. Likewise, a token must be consumed to traverse to the next state.

validate

automata.validate(tokens, callback, state);
tokens

This is an array of tokens to be validated. All empty strings or elements that are == null will be removed.

callback

This function is used to return the results back to the user. The function should have the following signature.

state {optional}

If you wish to retrieve the state machine's final state object then pass in a named object variable. This can be useful if you are using the state machine for parsing.

function callback(isValid, error)

isValid {Boolean} - represents whether the tokens were accepted

error {String} - If isValid is false then this will tell why the state machine did not validate the tokens

1.6.0

7 years ago

1.5.0

7 years ago

1.4.0

7 years ago

1.3.4

7 years ago

1.3.3

7 years ago

1.3.2

7 years ago

1.3.1

7 years ago

1.3.0

7 years ago

1.2.0

7 years ago

1.1.0

7 years ago

1.0.0

7 years ago