diff options
Diffstat (limited to 'xfa/src/fxfa/src/fm2js/xfa_expression.h')
-rw-r--r-- | xfa/src/fxfa/src/fm2js/xfa_expression.h | 115 |
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_ |