RicardoSantos

StringEvaluation

RicardoSantos Wizard Uppdaterad   
Library "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:.. '' --> ''
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().
| @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
| @param arguments float array, arguments.
| @returns float, solution.
Versionsinformation:
v2
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.
Versionsinformation:
v3 minor modification to see if it fixes a bug..
Versionsinformation:
v4 small test to see if i capture the source of a bug..
Pinebibliotek

I sann TradingView-anda har författaren publicerat denna Pine-kod som ett bibliotek med öppen källkod så att andra Pine-programmerare från vår community kan återanvända den. Hatten av för författaren! Du kan använda det här biblioteket privat eller i andra publikationer med öppen källkod, men återanvändning av den här koden i en publikation regleras av våra ordningsregler.

Frånsägelse av ansvar

Informationen och publikationerna är inte avsedda att vara, och utgör inte heller finansiella, investerings-, handels- eller andra typer av råd eller rekommendationer som tillhandahålls eller stöds av TradingView. Läs mer i Användarvillkoren.

Vill du använda det här biblioteket?

Kopiera följande rad och klistra in det i ditt skript.