1.1.0 • Published 3 years ago

mathtokenizer v1.1.0

Weekly downloads
-
License
ISC
Repository
github
Last release
3 years ago

Math Tokenizer

Install

npm install mathtokenizer

Math expression tokenizer for expression validation

token: class for token object {type, value}
tokenize: function that takes in math expression and returns 
array with tokens, also takes in an optional integer [0-2] variable for choosing 
only a delimiter as a function delimiter. Default is 3, which doesn't force any 
particular delimiter and recognizes as function any alphanumerical
expression **right before** the opening delimiter. 

tokenize(expr, index(optional))

IndexDelimiter
0(
1{
2[
3Default no particular delimiter
In the new version (^1.1.0), it's no longer lparenthesis or rparenthesis, it's rather
ldelimiter, rdelimiter.

Example1:

let tokenizer = require('mathtokenizer')
let A = tokenizer.tokenize("sin(-3x)")
console.log(A)
/*Code produced:
	[
	  token { type: 'function', value: 'sin' },
	  token { type: 'ldelimiter', value: '(' },
	  token { type: 'unary_operator', value: '-' },
	  token { type: 'number', value: '3' },
	  token { type: 'operator', value: '*' },
	  token { type: 'variable', value: 'x' },
	  token { type: 'rdelimiter', value: ')' }
	]
*/

Example2:

let tokenizer = require('mathtokenizer')
let A = tokenizer.tokenize("f1(x+2)")
console.log(A)
/*Code produced:
	[
	  token { type: 'function', value: 'f1' },
	  token { type: 'ldelimiter', value: '(' },
	  token { type: 'variable', value: 'x' },
	  token { type: 'operator', value: '+' },
	  token { type: 'number', value: '2' },
	  token { type: 'rdelimiter', value: ')' }
	]
*/

Example3:

Same as in example2, but this time with the optional argument being assigned the value 1: curly braces

let tokenizer = require('mathtokenizer')
let A = tokenizer.tokenize("f1(x+2)", 1) //Optional argument is given 1
console.log(A)
/*Code produced:
	[
	  token { type: 'variable', value: 'f1' }, //f1 is recognized as a variable this time because it's followed by a parenthesis and not a curly brace
	  token { type: 'operator', value: '*' },
	  token { type: 'ldelimiter', value: '(' },
	  token { type: 'variable', value: 'x' },
	  token { type: 'operator', value: '+' },
	  token { type: 'number', value: '2' },
	  token { type: 'rdelimiter', value: ')' }
	]
*/
1.1.0

3 years ago

1.0.8

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago