cds.tools.parser
Class Parser

java.lang.Object
  extended by cds.tools.parser.Parser

public final class Parser
extends java.lang.Object

Classe Parser Cette classe permet le "parsing" d'une chaine representant une expression mathematique pouvant comporter des variables . Les operateurs possibles sont +, -, *, /, (, ), ^

Version:
1.1 Octobre 2007 Amélioration considérable des performances

Constructor Summary
Parser()
          Constructeur - cree un nouveau parser vide
Parser(java.lang.String s)
          Constructeur - cree un nouveau parser
 
Method Summary
static void addFunc(Function f)
          ajoute une fonction à celles reconnues par le parser
 void addVar(java.lang.String name)
          Ajoute une variable
 double eval()
           
 Unit evalUnit()
          Retourne l'évaluation de l'unité complète (valeur+symbole) Attention : l'unité de chaque variable doit avoir été fixée avec setVarUnit sans quoi le résultat de evalUnit sera inexact
static java.lang.String[] getAvailFunc()
          returns available functions names
 java.lang.String getExpr()
           
 java.util.Iterator getVariables()
          Pour obtenir l'ensemble des variables
 boolean isConstant()
          pour savoir si le parser a une valeur constante, cad si il n'y a pas de variable
 double oldEval()
           
 void parseString()
          Effectue le parsing
 void parseString(java.lang.String s)
          Parse la chaine passee en parametre
static java.lang.String replace(java.lang.String text, java.lang.String repl, java.lang.String with, int max)
           
 void setVar(java.lang.String name, double value)
          Fixe la valeur d'une variable
 boolean setVarUnit(java.lang.String name, java.lang.String unitStr)
          Fixe l'unite d'une variable
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Parser

public Parser()
Constructeur - cree un nouveau parser vide


Parser

public Parser(java.lang.String s)
Constructeur - cree un nouveau parser

Parameters:
s - - l'expression a parser
Method Detail

parseString

public void parseString(java.lang.String s)
Parse la chaine passee en parametre

Parameters:
s - - la chaine a parser

parseString

public void parseString()
Effectue le parsing


eval

public final double eval()

oldEval

public final double oldEval()

addFunc

public static void addFunc(Function f)
ajoute une fonction à celles reconnues par le parser

Parameters:
f - fonction à ajouter

addVar

public void addVar(java.lang.String name)
Ajoute une variable

Parameters:
name - - nom de la variable a ajouter

setVarUnit

public boolean setVarUnit(java.lang.String name,
                          java.lang.String unitStr)
Fixe l'unite d'une variable

Parameters:
name - - nom de la variable
unitStr - - unite de la variable
Returns:
true if success, false otherwise

setVar

public void setVar(java.lang.String name,
                   double value)
Fixe la valeur d'une variable

Parameters:
name - - nom de la variable
value - - valeur de la variable

getVariables

public java.util.Iterator getVariables()
Pour obtenir l'ensemble des variables

Returns:
l'ensemble des variables de ce parser

isConstant

public boolean isConstant()
pour savoir si le parser a une valeur constante, cad si il n'y a pas de variable

Returns:
true si le parser a une valeur constante

evalUnit

public Unit evalUnit()
              throws java.text.ParseException
Retourne l'évaluation de l'unité complète (valeur+symbole) Attention : l'unité de chaque variable doit avoir été fixée avec setVarUnit sans quoi le résultat de evalUnit sera inexact

Throws:
java.text.ParseException

getAvailFunc

public static java.lang.String[] getAvailFunc()
returns available functions names

Returns:
String[]

getExpr

public java.lang.String getExpr()
Returns:
Returns the expression

replace

public static java.lang.String replace(java.lang.String text,
                                       java.lang.String repl,
                                       java.lang.String with,
                                       int max)
Parameters:
text - text to search and replace in
repl - String to search for
with - String to replace with
max - Maximum number of values to replace. If -1, replace all occurences of repl
Returns:
String the string with replacements processed


Copyright © 2009 UDS/CNRS