StringEvaluation

Methods to handle evaluation of strings.
is_comma(char) Check if char is a comma ".".
Parameters:
- char: string, 1 character string.
Returns: bool.
is_op(char) Check if char is a operator.
Parameters:
- char: string, 1 character string.
Returns: bool.
number(char) convert a single char string into valid number.
Parameters:
- char: string, 1 character string.
Returns: float.
operator(op, left, right) operation between left and right values.
Parameters:
- op: string, operator string character.
- left: float, left value of operation.
- right: float, right value of operation.
operator_precedence(op) level of precedence of operator.
Parameters:
- op: string, operator 1 char string.
Returns: int.
cleanup(_str) Evaluate a string to clean up and retrieve only used chars
Parameters:
- _str: string, arithmetic operations in a string.
Returns: string array, evaluated array.
generate_rpn(tokens) uses Shunting-Yard algorithm to generate a RPN (Reverse Polish notation)
array of strings from a array of strings containing arithmetic notation.
ex:.. '[3 + 4 * 2 / ( 1 - 5 ) ^ 2 ^ 3]' --> '[3 4 2 * 1 5 - 2 3 ^ ^ / +]'
Parameters:
- tokens: string array, array with arithmetic notation.
Returns:
parse_rpn() evaluate a RPN (Reverse Polish notation) array of strings.
ex:.. 3 4 2 * 1 5 - 2 3 ^ ^ / +
| param tokens string array, RPN ordered tokens, ex(['3', '4', '2', '1', '5', '2', '3', '*', '-', '^', '^', '/', '+']).
| Returns float, solution.
eval() evaluate a string with references to a array of arguments.
| param tokens string, arithmetic operations with references to indices in arguments, ex:"0+1*0+2*2+3" arguments[1, 2, 3]
| param arguments float array, arguments.
| Returns float, solution.
Update: supports boolean operators and float numbers now
Added:
is_op_component(char) Check if char is a operator component.
Parameters:
char: string, 1 character string.
Returns: bool.
is_boolean_op(char) Check if char is a boolean operator.
Parameters:
char: string, 1 character string.
Returns: bool.
is_alpha(char) Check if char is alphabet.
Parameters:
char: string, 1 character string.
Returns: bool.
boolean_operator(op, left, right) boolean operation between left and right values.
Parameters:
op: string, operator string character.
left: float, left value of operation.
right: float, right value of operation.
boolean_operator_precedence(op) level of precedence of operator.
Parameters:
op: string, operator 1 char string.
Returns: int.
aggregate_words(tokens) Aggregates words, numbers and operators into one.
Parameters:
tokens: string array, array with split string into character tokens.
Returns: string array.
Libreria Pine
In pieno spirito TradingView, l'autore ha pubblicato questo codice Pine come libreria open-source in modo che altri programmatori Pine della nostra comunità possano riutilizzarlo. Complimenti all'autore! È possibile utilizzare questa libreria privatamente o in altre pubblicazioni open-source, ma il riutilizzo di questo codice in una pubblicazione è regolato dal nostro Regolamento.
Declinazione di responsabilità
Libreria Pine
In pieno spirito TradingView, l'autore ha pubblicato questo codice Pine come libreria open-source in modo che altri programmatori Pine della nostra comunità possano riutilizzarlo. Complimenti all'autore! È possibile utilizzare questa libreria privatamente o in altre pubblicazioni open-source, ma il riutilizzo di questo codice in una pubblicazione è regolato dal nostro Regolamento.