public DoubleEvaluator(ASTNode node, boolean relaxedSyntax) { fASTFactory = new ASTNodeFactory(relaxedSyntax); fVariableMap = new HashMap<String, IDoubleValue>(); fBooleanVariables = new HashMap<String, BooleanVariable>(); fNode = node; fRelaxedSyntax = relaxedSyntax; if (fRelaxedSyntax) { if (SYMBOL_DOUBLE_MAP.get("pi") == null) { // init tables for relaxed mode for (String key : SYMBOL_DOUBLE_MAP.keySet()) { SYMBOL_DOUBLE_MAP.put(key.toLowerCase(), SYMBOL_DOUBLE_MAP.get(key)); } for (String key : SYMBOL_BOOLEAN_MAP.keySet()) { SYMBOL_BOOLEAN_MAP.put(key.toLowerCase(), SYMBOL_BOOLEAN_MAP.get(key)); } for (String key : FUNCTION_DOUBLE_MAP.keySet()) { FUNCTION_DOUBLE_MAP.put(key.toLowerCase(), FUNCTION_DOUBLE_MAP.get(key)); } for (String key : FUNCTION_BOOLEAN_MAP.keySet()) { FUNCTION_BOOLEAN_MAP.put(key.toLowerCase(), FUNCTION_BOOLEAN_MAP.get(key)); } } } }