UNPKG

expressionparser

Version:

Parse simple expressions, in a language of your own description

656 lines (328 loc) 12.7 kB
# Language Reference ## + `(a: Number + b: Number): Number` Performs addition: a + b ## ADD `ADD(a: Number, b: Number): Number` Performs addition: ADD(a, b) = a + b ## * `(a: Number * b: Number): Number` Performs multiplication: a * b ## MUL `MUL(a: Number, b: Number): Number` Performs multiplication: MUL(a, b) = a * b ## - `(a: Number - b: Number): Number` Performs subtraction: a - b ## SUB `SUB(a: Number, b: Number): Number` Performs subtraction: SUB(a, b) = a - b ## / `(a: Number / b: Number): Number` Performs division: a / b ## DIV `DIV(a: Number, b: Number): Number` Performs division: DIV(a, b) = a / b ## , `(a , b): Arguments` Returns an array of arguments with b appended to a. If a is not an argument array, it is automatically appended to an empty array. ## MOD `MOD(a: Number, b: Number): Number` Performs modulo operation: MOD(a, b). (equivalent to a % b) ## % `(a: Number % b: Number): Number` Performs modulo operation: a % b. (equivalent to MOD(a, b)) ## = `(a = b): Boolean` Returns TRUE if a = b. Otherwise returns FALSE. ## != `(a: Number != b: Number): Number` Returns FALSE if a = b. Otherwise returns TRUE. (equivalent to <>) ## <> `(a: Number <> b: Number): Number` Returns FALSE if a = b. Otherwise returns TRUE. (equivalent to !=) ## ~= `(a: Number ~= b: Number): Number` Returns TRUE if ABS(a - b) < EPSILON. Otherwise returns FALSE. ## > `(a: Number > b: Number): Boolean` Performs greater-than operation: a > b ## < `(a: Number < b: Number): Boolean` Performs less-than operation: a < b ## >= `(a: Number >= b: Number): Boolean` Performs greater-than-or-equal operation: a >= b ## <= `(a: Number <= b: Number): Boolean` Performs less-than-or-equal operation: a <= b ## AND `(a: Boolean AND b: Boolean): Boolean` Performs logical AND: a AND b. ## OR `(a: Boolean OR b: Boolean): Boolean` Performs logical OR: a OR b. ## ^ `(a: Number ^ b: Number): Number` Performs exponentiation (a to the power of b): a ^ b ## NEG `NEG(value: Number): Number` Performs negation of the value: NEG(value). (equivalent to -value) ## - `-(value: Number): Number` Performs negation of the value: -value. Note: no space can be present before "value". (equivalent to NEG(value)) ## ISPRIME `ISPRIME(value: Number): Number` Returns TRUE if value is prime, FALSE otherwise. ## COMB `COMB(n: Number, k: Number): Number` Returns the number of combinations of n items taken k at a time: COMB(n, k). ## PERM `PERM(n: Number, k: Number): Number` Returns the number of permutations of n items taken k at a time: PERM(n, k). ## POW `POW(base: Number, exponent: Number): Number` Returns the result of raising the base to the exponent: POW(base, exponent). ## GCD `GCD(a: Number, b: Number): Number` Returns the greatest common divisor of a and b. ## NOT `NOT(value: Boolean): Boolean` Performs logical NOT of the value: NOT(value). (equivalent to !value) ## ! `!(value: Boolean): Boolean` Performs logical NOT of the value: !value. (equivalent to NOT(value)) ## ABS `ABS(value: Number): Number` Returns the absolute value of the number: ABS(value). ## ACOS `ACOS(value: Number): Number` Returns the arc cosine (inverse cosine) of the number: ACOS(value). ## ACOSH `ACOSH(value: Number): Number` Returns the inverse hyperbolic cosine of the number: ACOSH(value). ## ASIN `ASIN(value: Number): Number` Returns the arcsine of the number: ASIN(value). ## ASINH `ASINH(value: Number): Number` Returns the inverse hyperbolic sine of the number: ASINH(value). ## ATAN `ATAN(value: Number): Number` Returns the arctangent of the number: ATAN(value). ## ATAN2 `ATAN2(y: Number, x: Number): Number` Returns the angle (radians) from the X-axis to a point, given a cartesian y-coordinate and x-coordinate: ATAN2(y, x). ## ATANH `ATANH(value: Number): Number` Returns the inverse hyperbolic tangent of the number: ATANH(value). ## CUBEROOT `CUBEROOT(value: Number): Number` Returns an approximation of the cubed root of the number: CUBEROOT(value). ## COS `COS(value: Number): Number` Returns the cosine of the number: COS(value). ## COSH `COSH(value: Number): Number` Returns the hyperbolic cosine of the number: COSH(value). ## EXP `EXP(value: Number): Number` Returns the natural logarithm (e) raised to this value: EXP(value). ## LN `LN(value: Number): Number` Returns the natural logarithm (base e) of the number: LN(value). ## LOG `LOG(value: Number): Number` Returns the base 10 logarithm of the number: LOG(value). ## LOG2 `LOG2(value: Number): Number` Returns the base 2 logarithm of the number: LOG2(value). ## SIN `SIN(value: Number): Number` Returns the sine of the number: SIN(value). ## SINH `SINH(value: Number): Number` Returns the hyperbolic sine of the number: SINH(value). ## SQRT `SQRT(value: Number): Number` Returns the square root of the number: SQRT(value). ## TAN `TAN(value: Number): Number` Returns the tangent of the number: TAN(value). ## TANH `TANH(value: Number): Number` Returns the hyperbolic tangent of the number: TANH(value). ## DEGREES `DEGREES(radians: Number): Number` Performs a conversion of radians to degrees: DEGREES(radians). (equivalent to RAD2DEG) ## RADIANS `RADIANS(degrees: Number): Number` Performs a conversion of radians to degrees: RADIANS(degrees). (equivalent to DEG2RAD) ## CEIL `CEIL(value: Number): Number` Returns the smallest integer greater-than or equal-to the number: CEIL(value). ## FLOOR `FLOOR(value: Number): Number` Returns the greatest integer less-than or equal-to the number: CEIL(value). ## ROUND `ROUND(value: Number): Number` Returns the value rounded to the nearest integer: ROUND(value). ## TRUNC `TRUNC(value: Number): Number` Returns the integral part of the number, truncating any fractional digits: TRUNC(value). ## SIGN `SIGN(value: Number): Number` Returns the sign of the value, indicating whether the number is positive (1) or negative (-1): SIGN(value). ## ISNAN `ISNAN(value): Boolean` Returns TRUE if a value is not a number (e.g. the result of an invalid mathematical operation), otherwise returns FALSE: ISNAN(value). ## IF `IF(condition: Boolean, then, else): result` Tests the condition and returns the "then" value if the condition is TRUE, otherwise returns the "else" value: IF(condition, then, else). ## AVERAGE `AVERAGE(values: Array of Numbers): Number` Returns the average (mean) of an array of numbers. AVERAGE(array). (equivalent to MEAN) ## MEAN `MEAN(values: Array of Numbers): Number` Returns the mean (average) of an array of numbers. MEAN(array). (equivalent to AVERAGE) ## MEDIAN `MEDIAN(values: Array of Numbers): Number` Returns the median of an array of numbers. MEDIAN(array). ## MODE `MODE(values: Array of Numbers): Array` Returns the mode of an array of numbers. MODE(array). ## SUM `SUM(values: Array of Numbers): Number` Returns the sum of an array of numbers. SUM(array). ## MIN `MIN(values: Array of Numbers): Number` Returns the minimum value in an array of numbers. MIN(array). ## MAX `MAX(values: Array of Numbers): Number` Returns the maximum value in an array of numbers. MAX(array). ## CHAR `CHAR(code: Integer): String` Returns a single-character string with a unicode character representing the value of the given code. CHAR(code) ## CODE `CODE(string: String): Integer` Returns the unicode value of the first character of a string: CODE(string) ## UPPER `UPPER(string: String): String` Converts a string to uppercase: UPPER(string). ## LOWER `LOWER(string: String): String` Converts a string to lowercase: LOWER(string). ## DEC2BIN `DEC2BIN(decimal: Integer): binary: String` Returns a string of "1" and "0" characters representing the binary representation of the decimal value. DEC2BIN(decimal) ## DEC2HEX `DEC2HEX(decimal: Integer): hex: String` Returns a string of characters representing the hexadecimal representation of the decimal value. DEC2HEX(decimal) ## BIN2DEC `BIN2DEC(binary: String): decimal: Integer` Returns the base 10 value of a binary string of "1" and "0" characters. BIN2DEC(binary) ## HEX2DEC `HEX2DEC(hex: String): decimal: Integer` Returns the base 10 value of a hexadecimal string. HEX2DEC(hex) ## SORT `SORT(array: Array): Array` Returns a sorted array: SORT(array). ## REVERSE `REVERSE(array: Array): Array` Returns a reversed array: REVERSE(array). ## INDEX `INDEX(array: Array, i: Integer): Value` Returns the value at the given array index: INDEX(array, i). ## LENGTH `LENGTH(array: Array): Integer` Returns the length of an array: LENGTH(array). ## JOIN `JOIN(array: Array, separator: String): String` Joins each array element into a string, using a separator: JOIN(array, separator). ## SPLIT `SPLIT(string: String, separator: String): Array` Splits a string into an array of characters, using a separator: SPLIT(string, separator). ## STRING `STRING(array: Array): String` Converts an array into a string: STRING(array). ## CHARARRAY `CHARARRAY(string: String): Array` Converts a string into an array of characters: CHARARRAY(string) ## ARRAY `ARRAY(arguments...): Array` Converts arguments into an array: ARRAY(a, b, c, ...). ## MAP `MAP(mapper: Reference, array: Array): Array` Performs a mapper function on each element of the array: MAP(mapper, array). ## REDUCE `REDUCE(reducer: Reference, start, array: Array): Array` Performs a reducer function on each pair of array elements, using "start" as its starting value: REDUCE(reducer, array). ## RANGE `RANGE(start: Integer, limit: Integer): Array` Creates an array of integers, incrementing from start (included) to the limit (excluded): RANGE(start, limit) ## RANGE `RANGE(limit: Integer): Array` Creates an array of integers, incrementing from 0 (included) to the limit (excluded): RANGE(limit) ## RANGE `RANGE(values: Array of Numbers): Array` Returns the statistical range of an array of numbers: RANGE(array) ## ZIP `ZIP(array1: Array, array2: Array): Array of [array1[i], array2[i]]` Combines two arrays into a single array of both values, paired at their respective position: ZIP(array1, array2) ## UNZIP `UNZIP(array: Array of [a, b]): [Array of a, Array of b]` Splits a single array of pairs into two arrays with values at their respective positions: UNZIP(array) ## TAKE `TAKE(n: Integer): Array` Takes the first n values from the array: TAKE(n, array) ## DROP `DROP(n: Integer): Array` Drops the first n values from the array: DROP(n, array) ## SLICE `SLICE(startIndex: Integer, limitIndex: Integer): Array` Slices an array from startIndex to (but not including) limitIndex: SLICE(startIndex, limitIndex, array) ## CONCAT `CONCAT(array1: Array, array2: Array): Array` Concatenates two arrays into one: CONCAT(array1, array2) ## HEAD `HEAD(array: Array): Value` Retrieves the first element of an array: HEAD(array). (equivalent to FIRST) ## TAIL `TAIL(array: Array): Array` Returns the array without the first element: TAIL(array) ## LAST `LAST(array: Array): Value` Retrieves the last element of an array: LAST(array) ## CONS `CONS(head: Value, array: Array): Array` Returns an array with a new value at the first position: CONS(head, array) ## FILTER `FILTER(filter: Reference, array: Array): Array` Returns an array of all elements for which 'filter(element)' returns true: FILTER(filter, array). ## TAKEWHILE `TAKEWHILE(check: Reference, array: Array): Array` Returns a new array of all elements up until 'check(element)' returns false: TAKEWHILE(check, array). ## DROPWHILE `DROPWHILE(check: Reference, array: Array): Array` Returns a new array skipping all elements up until 'check(element)' returns false: DROPWHILE(check, array). ## GET `GET(key: String, dict: Dictionary): Value` Retrieves the value of the associated key in a dictionary: GET(key, dict) ## PUT `PUT(key: String, value: Value, dict: Dictionary): Dictionary` Returns a dictionary with the key set to a new value: PUT(key, value, dict) ## DICT `DICT(keys: Array, values: Array): Dictionary` Constructs a new dictionary out of an array of keys and a corresponding array of values: DICT(keys, values) ## UNZIPDICT `UNZIPDICT(keyValuePairs: Array): Dictionary` Constructs a new dictionary out of an array of [key, value] pairs: UNZIPDICT(keyValuePairs) ## KEYS `KEYS(dict: Dictionary): Array` Returns all the keys of a dictionary in alphabetical order: KEYS(dict) ## VALUES `VALUES(dict: Dictionary): Array` Returns all the values of a dictionary, in alphabetical order of their keys: VALUES(dict) ## [...] `[arguments...]: Array` Converts arguments into an array: [a, b, c, ...].