FLImaging 6.5.13.1
ExpressionParser.h
1#pragma once
2
133#include "FLArray.h"
134#include "FLString.h"
135
136#include <functional>
137
139namespace FLImaging
140{
142 namespace Base
143 {
144 class CInternalExpressionParser;
145
275 class FL_EXPORT CExpressionParser : public CFLBase
276 {
277 public:
286
297
308
317
328
336 void Clear();
337
351 const CResult Assign(const CExpressionParser& parser);
352
366 const CResult Assign(const CExpressionParser* pParser);
367
383 const CResult GetExpression(CFLString<wchar_t>& strExpression) const;
384
400 const CResult GetExpression(CFLString<wchar_t>* pStrExpression) const;
401
417 const CResult SetExpression(const CFLString<wchar_t>& strExpression);
418
434 const CResult SetExpression(const CFLString<wchar_t>* pStrExpression);
435
447 const CResult Parse();
448
458 int64_t GetVariableCount() const;
459
477 const CResult GetVariableName(int64_t i64Index, CFLString<wchar_t>& strVariableName) const;
478
496 const CResult GetVariableName(int64_t i64Index, CFLString<wchar_t>* pStrVariableName) const;
497
513 const CResult GetVariableValue(int64_t i64Index, double& f64VariableValue) const;
514
530 const CResult GetVariableValue(int64_t i64Index, double* pF64VariableValue) const;
531
549 const CResult GetVariableString(int64_t i64Index, CFLString<wchar_t>& strVariableString) const;
550
568 const CResult GetVariableString(int64_t i64Index, CFLString<wchar_t>* pStrVariableString) const;
569
585 const CResult SetVariableValue(int64_t i64Index, double f64VariableValue);
586
604 const CResult SetVariableString(int64_t i64Index, const CFLString<wchar_t>& strVariableString);
605
606
620 const CResult Evaluate(double& f64Result) const;
621
635 const CResult Evaluate(double* pF64Result) const;
636
637
655 const CResult GetPostfix(CFLArray<CFLString<wchar_t>>& flaStrPostfix) const;
656
674 const CResult GetPostfix(CFLArray<CFLString<wchar_t>>* pFlaStrPostfix) const;
675
676
693
711 const CResult AddUserDefinedFunction(const CFLString<wchar_t>& strFunctionName, std::function<const CResult(const CFLString<wchar_t>&, double&)> lmdFunctionImplement);
712
713
714 DeclareGetClassType();
715
716 private:
717
718 CFLString<wchar_t> m_strExpression;
719
720 CInternalExpressionParser* m_pInternal;
721 friend class CInternalExpressionParser;
722 };
723 }
724}
Expression Parser .
Definition ExpressionParser.h:276
const CResult Parse()
Parse the input expression.
const CResult Assign(const CExpressionParser &parser)
Assign the contents of another object to the current object.
const CResult GetVariableString(int64_t i64Index, CFLString< wchar_t > &strVariableString) const
Get the value of a variable set by index.
const CResult GetVariableName(int64_t i64Index, CFLString< wchar_t > *pStrVariableName) const
Get variable names by index.
const CResult GetLastErrorSymbol(CFLString< wchar_t > &strErrorSymbol)
Get the Symbol where an error occurred during processing.
const CResult SetExpression(const CFLString< wchar_t > *pStrExpression)
Enter expression.
const CResult SetVariableValue(int64_t i64Index, double f64VariableValue)
Set the value of a variable by index as a floating point.
const CResult Evaluate(double &f64Result) const
Evaluates expression after final variable value is confirmed.
const CResult GetExpression(CFLString< wchar_t > &strExpression) const
Get the input expression.
void Clear()
Clear object contents.
const CExpressionParser & operator=(const CExpressionParser &parser)
Assignment operator.
const CResult GetPostfix(CFLArray< CFLString< wchar_t > > &flaStrPostfix) const
Get postfix expression Can be used without finalizing the variable value.
const CResult Evaluate(double *pF64Result) const
Evaluates expression after final variable value is confirmed.
const CResult GetVariableValue(int64_t i64Index, double &f64VariableValue) const
Get the value of a variable set by index.
const CResult SetExpression(const CFLString< wchar_t > &strExpression)
Enter expression.
const CResult GetVariableName(int64_t i64Index, CFLString< wchar_t > &strVariableName) const
Get variable names by index.
const CResult AddUserDefinedFunction(const CFLString< wchar_t > &strFunctionName, std::function< const CResult(const CFLString< wchar_t > &, double &)> lmdFunctionImplement)
Add user-defined functions.
CExpressionParser()
Default constructor.
CExpressionParser(const CExpressionParser &parser)
Copy constructor.
const CResult SetVariableString(int64_t i64Index, const CFLString< wchar_t > &strVariableString)
Set the value of a variable by index as a string.
const CResult GetPostfix(CFLArray< CFLString< wchar_t > > *pFlaStrPostfix) const
Get postfix expression Can be used without finalizing the variable value.
CExpressionParser(const CExpressionParser *pParser)
Copy constructor.
const CResult Assign(const CExpressionParser *pParser)
Assign the contents of another object to the current object.
const CResult GetExpression(CFLString< wchar_t > *pStrExpression) const
Get the input expression.
const CResult GetVariableValue(int64_t i64Index, double *pF64VariableValue) const
Get the value of a variable set by index.
virtual ~CExpressionParser()
Destructor.
int64_t GetVariableCount() const
Returns the number of variables in the parsed expression.
const CResult GetVariableString(int64_t i64Index, CFLString< wchar_t > *pStrVariableString) const
Get the value of a variable set by index.
Template type array class.
Definition RangeTree.h:19
Top-level base class of FLImaging.
Definition FLBase.h:36
Template type string class.
Definition INIUtilities.h:20
FLImaging module execution result object.
Definition ResultsDef.h:1514