summaryrefslogtreecommitdiff
path: root/xfa/src/fxfa/src/fm2js/xfa_expression.h
diff options
context:
space:
mode:
Diffstat (limited to 'xfa/src/fxfa/src/fm2js/xfa_expression.h')
-rw-r--r--xfa/src/fxfa/src/fm2js/xfa_expression.h115
1 files changed, 62 insertions, 53 deletions
diff --git a/xfa/src/fxfa/src/fm2js/xfa_expression.h b/xfa/src/fxfa/src/fm2js/xfa_expression.h
index 2d2da0cb89..8fe251271b 100644
--- a/xfa/src/fxfa/src/fm2js/xfa_expression.h
+++ b/xfa/src/fxfa/src/fm2js/xfa_expression.h
@@ -7,6 +7,8 @@
#ifndef XFA_SRC_FXFA_SRC_FM2JS_XFA_EXPRESSION_H_
#define XFA_SRC_FXFA_SRC_FM2JS_XFA_EXPRESSION_H_
+#include <memory>
+
#include "xfa/src/fxfa/src/fm2js/xfa_simpleexpression.h"
enum XFA_FM_EXPTYPE {
@@ -19,9 +21,10 @@ enum XFA_FM_EXPTYPE {
XFA_FM_EXPTYPE_BREAK,
XFA_FM_EXPTYPE_CONTINUE,
};
+
class CXFA_FMExpression {
public:
- CXFA_FMExpression(FX_DWORD line);
+ explicit CXFA_FMExpression(FX_DWORD line);
CXFA_FMExpression(FX_DWORD line, XFA_FM_EXPTYPE type);
virtual ~CXFA_FMExpression() {}
virtual void ToJavaScript(CFX_WideTextBuf& javascript);
@@ -33,6 +36,7 @@ class CXFA_FMExpression {
XFA_FM_EXPTYPE m_type;
FX_DWORD m_line;
};
+
class CXFA_FMFunctionDefinition : public CXFA_FMExpression {
public:
CXFA_FMFunctionDefinition(FX_DWORD line,
@@ -40,9 +44,9 @@ class CXFA_FMFunctionDefinition : public CXFA_FMExpression {
const CFX_WideStringC& wsName,
CFX_WideStringCArray* pArguments,
CFX_PtrArray* pExpressions);
- virtual ~CXFA_FMFunctionDefinition();
- virtual void ToJavaScript(CFX_WideTextBuf& javascript);
- virtual void ToImpliedReturnJS(CFX_WideTextBuf&);
+ ~CXFA_FMFunctionDefinition() override;
+ void ToJavaScript(CFX_WideTextBuf& javascript) override;
+ void ToImpliedReturnJS(CFX_WideTextBuf&) override;
private:
CFX_WideStringC m_wsName;
@@ -50,98 +54,103 @@ class CXFA_FMFunctionDefinition : public CXFA_FMExpression {
CFX_PtrArray* m_pExpressions;
FX_BOOL m_isGlobal;
};
+
class CXFA_FMVarExpression : public CXFA_FMExpression {
public:
CXFA_FMVarExpression(FX_DWORD line,
const CFX_WideStringC& wsName,
CXFA_FMExpression* pInit);
- virtual ~CXFA_FMVarExpression();
- virtual void ToJavaScript(CFX_WideTextBuf& javascript);
- virtual void ToImpliedReturnJS(CFX_WideTextBuf&);
+ void ToJavaScript(CFX_WideTextBuf& javascript) override;
+ void ToImpliedReturnJS(CFX_WideTextBuf&) override;
private:
CFX_WideStringC m_wsName;
- CXFA_FMExpression* m_pInit;
+ std::unique_ptr<CXFA_FMExpression> m_pInit;
};
+
class CXFA_FMExpExpression : public CXFA_FMExpression {
public:
CXFA_FMExpExpression(FX_DWORD line, CXFA_FMSimpleExpression* pExpression);
- virtual ~CXFA_FMExpExpression();
- virtual void ToJavaScript(CFX_WideTextBuf& javascript);
- virtual void ToImpliedReturnJS(CFX_WideTextBuf&);
+ void ToJavaScript(CFX_WideTextBuf& javascript) override;
+ void ToImpliedReturnJS(CFX_WideTextBuf&) override;
private:
- CXFA_FMSimpleExpression* m_pExpression;
+ std::unique_ptr<CXFA_FMSimpleExpression> m_pExpression;
};
+
class CXFA_FMBlockExpression : public CXFA_FMExpression {
public:
CXFA_FMBlockExpression(FX_DWORD line, CFX_PtrArray* pExpressionList);
- virtual ~CXFA_FMBlockExpression();
- virtual void ToJavaScript(CFX_WideTextBuf& javascript);
- virtual void ToImpliedReturnJS(CFX_WideTextBuf&);
+ ~CXFA_FMBlockExpression() override;
+ void ToJavaScript(CFX_WideTextBuf& javascript) override;
+ void ToImpliedReturnJS(CFX_WideTextBuf&) override;
private:
CFX_PtrArray* m_pExpressionList;
};
+
class CXFA_FMDoExpression : public CXFA_FMExpression {
public:
CXFA_FMDoExpression(FX_DWORD line, CXFA_FMExpression* pList);
- virtual ~CXFA_FMDoExpression();
- virtual void ToJavaScript(CFX_WideTextBuf& javascript);
- virtual void ToImpliedReturnJS(CFX_WideTextBuf&);
+ void ToJavaScript(CFX_WideTextBuf& javascript) override;
+ void ToImpliedReturnJS(CFX_WideTextBuf&) override;
private:
- CXFA_FMExpression* m_pList;
+ std::unique_ptr<CXFA_FMExpression> m_pList;
};
+
class CXFA_FMIfExpression : public CXFA_FMExpression {
public:
CXFA_FMIfExpression(FX_DWORD line,
CXFA_FMSimpleExpression* pExpression,
CXFA_FMExpression* pIfExpression,
CXFA_FMExpression* pElseExpression);
- virtual ~CXFA_FMIfExpression();
- virtual void ToJavaScript(CFX_WideTextBuf& javascript);
- virtual void ToImpliedReturnJS(CFX_WideTextBuf&);
+ void ToJavaScript(CFX_WideTextBuf& javascript) override;
+ void ToImpliedReturnJS(CFX_WideTextBuf&) override;
private:
- CXFA_FMSimpleExpression* m_pExpression;
- CXFA_FMExpression* m_pIfExpression;
- CXFA_FMExpression* m_pElseExpression;
+ std::unique_ptr<CXFA_FMSimpleExpression> m_pExpression;
+ std::unique_ptr<CXFA_FMExpression> m_pIfExpression;
+ std::unique_ptr<CXFA_FMExpression> m_pElseExpression;
};
+
class CXFA_FMLoopExpression : public CXFA_FMExpression {
public:
- CXFA_FMLoopExpression(FX_DWORD line) : CXFA_FMExpression(line) {}
- virtual ~CXFA_FMLoopExpression();
- virtual void ToJavaScript(CFX_WideTextBuf& javascript);
- virtual void ToImpliedReturnJS(CFX_WideTextBuf&);
+ explicit CXFA_FMLoopExpression(FX_DWORD line) : CXFA_FMExpression(line) {}
+ ~CXFA_FMLoopExpression() override;
+ void ToJavaScript(CFX_WideTextBuf& javascript) override;
+ void ToImpliedReturnJS(CFX_WideTextBuf&) override;
};
+
class CXFA_FMWhileExpression : public CXFA_FMLoopExpression {
public:
CXFA_FMWhileExpression(FX_DWORD line,
CXFA_FMSimpleExpression* pCodition,
CXFA_FMExpression* pExpression);
- virtual ~CXFA_FMWhileExpression();
- virtual void ToJavaScript(CFX_WideTextBuf& javascript);
- virtual void ToImpliedReturnJS(CFX_WideTextBuf&);
+ void ToJavaScript(CFX_WideTextBuf& javascript) override;
+ void ToImpliedReturnJS(CFX_WideTextBuf&) override;
private:
- CXFA_FMSimpleExpression* m_pCondition;
- CXFA_FMExpression* m_pExpression;
+ std::unique_ptr<CXFA_FMSimpleExpression> m_pCondition;
+ std::unique_ptr<CXFA_FMExpression> m_pExpression;
};
+
class CXFA_FMBreakExpression : public CXFA_FMExpression {
public:
- CXFA_FMBreakExpression(FX_DWORD line);
- virtual ~CXFA_FMBreakExpression();
- virtual void ToJavaScript(CFX_WideTextBuf& javascript);
- virtual void ToImpliedReturnJS(CFX_WideTextBuf&);
+ explicit CXFA_FMBreakExpression(FX_DWORD line);
+ ~CXFA_FMBreakExpression() override;
+ void ToJavaScript(CFX_WideTextBuf& javascript) override;
+ void ToImpliedReturnJS(CFX_WideTextBuf&) override;
};
+
class CXFA_FMContinueExpression : public CXFA_FMExpression {
public:
- CXFA_FMContinueExpression(FX_DWORD line);
- virtual ~CXFA_FMContinueExpression();
- virtual void ToJavaScript(CFX_WideTextBuf& javascript);
- virtual void ToImpliedReturnJS(CFX_WideTextBuf&);
+ explicit CXFA_FMContinueExpression(FX_DWORD line);
+ ~CXFA_FMContinueExpression() override;
+ void ToJavaScript(CFX_WideTextBuf& javascript) override;
+ void ToImpliedReturnJS(CFX_WideTextBuf&) override;
};
+
class CXFA_FMForExpression : public CXFA_FMLoopExpression {
public:
CXFA_FMForExpression(FX_DWORD line,
@@ -151,32 +160,32 @@ class CXFA_FMForExpression : public CXFA_FMLoopExpression {
int32_t iDirection,
CXFA_FMSimpleExpression* pStep,
CXFA_FMExpression* pList);
- virtual ~CXFA_FMForExpression();
- virtual void ToJavaScript(CFX_WideTextBuf& javascript);
- virtual void ToImpliedReturnJS(CFX_WideTextBuf&);
+ void ToJavaScript(CFX_WideTextBuf& javascript) override;
+ void ToImpliedReturnJS(CFX_WideTextBuf&) override;
private:
CFX_WideStringC m_wsVariant;
- CXFA_FMSimpleExpression* m_pAssignment;
- CXFA_FMSimpleExpression* m_pAccessor;
+ std::unique_ptr<CXFA_FMSimpleExpression> m_pAssignment;
+ std::unique_ptr<CXFA_FMSimpleExpression> m_pAccessor;
int32_t m_iDirection;
- CXFA_FMSimpleExpression* m_pStep;
- CXFA_FMExpression* m_pList;
+ std::unique_ptr<CXFA_FMSimpleExpression> m_pStep;
+ std::unique_ptr<CXFA_FMExpression> m_pList;
};
+
class CXFA_FMForeachExpression : public CXFA_FMLoopExpression {
public:
CXFA_FMForeachExpression(FX_DWORD line,
const CFX_WideStringC& wsIdentifier,
CFX_PtrArray* pAccessors,
CXFA_FMExpression* pList);
- virtual ~CXFA_FMForeachExpression();
- virtual void ToJavaScript(CFX_WideTextBuf& javascript);
- virtual void ToImpliedReturnJS(CFX_WideTextBuf&);
+ ~CXFA_FMForeachExpression() override;
+ void ToJavaScript(CFX_WideTextBuf& javascript) override;
+ void ToImpliedReturnJS(CFX_WideTextBuf&) override;
private:
CFX_WideStringC m_wsIdentifier;
CFX_PtrArray* m_pAccessors;
- CXFA_FMExpression* m_pList;
+ std::unique_ptr<CXFA_FMExpression> m_pList;
};
#endif // XFA_SRC_FXFA_SRC_FM2JS_XFA_EXPRESSION_H_