Class ParserSuryono

java.lang.Object
org.opensourcephysics.ejs.control.value.ParserSuryono

public final class ParserSuryono extends Object
The class Parser is a mathematical expression parser.

Example of code that uses this class:

 Parser parser = new Parser(1);    // creates parser with one variable
 parser.defineVariable(0,"x");     // lets the variable be 'x'
 parser.define("Math.sin(x)/x");        // defines function: sin(x)/x
 parser.parse();                   // parses the function

 IMPORTANT: Notice that my variables start at 0 in this version


 // calculates: sin(x)/x with x = -5.0 .. +5.0 in 20 steps
 // and prints the result to standard output.

 double result;
 for (i=-10; i <= 10; i++) {
   parser.setVariable(0,(double)i/2.0f);
   result = parser.evaluate();
   System.out.println(result);
 }
 
  • Field Details

    • NO_ERROR

      public static final int NO_ERROR
      No error.
      See Also:
    • SYNTAX_ERROR

      public static final int SYNTAX_ERROR
      Syntax error.
      See Also:
    • PAREN_EXPECTED

      public static final int PAREN_EXPECTED
      Parentheses expected.
      See Also:
    • UNCOMPILED_FUNCTION

      public static final int UNCOMPILED_FUNCTION
      Attempt to evaluate an uncompiled function.
      See Also:
    • EXPRESSION_EXPECTED

      public static final int EXPRESSION_EXPECTED
      Expression expected.
      See Also:
    • UNKNOWN_IDENTIFIER

      public static final int UNKNOWN_IDENTIFIER
      Unknown identifier.
      See Also:
    • OPERATOR_EXPECTED

      public static final int OPERATOR_EXPECTED
      Operator expected.
      See Also:
    • PAREN_NOT_MATCH

      public static final int PAREN_NOT_MATCH
      Parenthesis mismatch.
      See Also:
    • CODE_DAMAGED

      public static final int CODE_DAMAGED
      Code damaged.
      See Also:
    • STACK_OVERFLOW

      public static final int STACK_OVERFLOW
      Stack overflow.
      See Also:
    • TOO_MANY_CONSTS

      public static final int TOO_MANY_CONSTS
      Too many constants.
      See Also:
    • COMMA_EXPECTED

      public static final int COMMA_EXPECTED
      Comma expected.
      See Also:
    • INVALID_OPERAND

      public static final int INVALID_OPERAND
      Invalid operand.
      See Also:
    • INVALID_OPERATOR

      public static final int INVALID_OPERATOR
      Invalid operator.
      See Also:
    • NO_FUNC_DEFINITION

      public static final int NO_FUNC_DEFINITION
      No function definition to parse.
      See Also:
    • REF_NAME_EXPECTED

      public static final int REF_NAME_EXPECTED
      Referenced name could not be found.
      See Also:
  • Constructor Details

    • ParserSuryono

      public ParserSuryono(int variablecount)
      The constructor of Parser.
      Parameters:
      variablecount - the number of variables
  • Method Details

    • isKeyword

      public static boolean isKeyword(String token)
      Wether a given token is a reserved word
      Parameters:
      token -
      Returns:
    • getVariableList

      public static String[] getVariableList(String _expression)
      Gets an expression and returns a String[] of the variables the expression will need. This can be used to decide beforehand how many variables a new parser should have.
    • getVariableList

      public static Vector<String> getVariableList(String _expression, Vector<String> varlist)
      Gets an expression and a Vector of declared variables and updates the Vector with extra variables the expression will need. This can be used to decide beforehand how many variables a new parser should have.
      Returns:
      the same Vector updated
    • defineVariable

      public void defineVariable(int index, String name)
      Sets the variable names.
      Parameters:
      index - the variable index (one based)
      name - the variable name
    • setVariable

      public void setVariable(int index, double value)
      Sets the variable value. The variable is accessed by index.
      Parameters:
      index - the variable index (one based)
      value - the variable value
    • define

      public void define(String definition)
      Defines a function. Current postfix code becomes invalid.
      Parameters:
      definition - the function definition
    • parse

      public void parse()
      Parses defined function.
    • evaluate

      public double evaluate()
      Evaluates compiled function.
      Returns:
      the result of the function
    • getErrorCode

      public int getErrorCode()
      Gets error code of last operation.
      Returns:
      the error code
    • getErrorString

      public String getErrorString()
      Gets error string/message of last operation.
      Returns:
      the error string
    • getErrorPosition

      public int getErrorPosition()
      Gets error position. Valid only if error code != NO_ERROR
      Returns:
      error position (one based)
    • toErrorString

      public static String toErrorString(int errorcode)
      Converts error code to error string.
      Returns:
      the error string