diff options
author | Dan Sinclair <dsinclair@chromium.org> | 2016-03-08 13:49:22 -0500 |
---|---|---|
committer | Dan Sinclair <dsinclair@chromium.org> | 2016-03-08 13:49:22 -0500 |
commit | 6cdf084fa40a62eb33185171622ad12d95c6009e (patch) | |
tree | daeea24a81365ed27582f280b7f19add0cb7b0d7 /xfa/src/fxfa/fm2js/xfa_expression.h | |
parent | 653e0797debddb4e9aecbc6cde65748d43b18b79 (diff) | |
download | pdfium-6cdf084fa40a62eb33185171622ad12d95c6009e.tar.xz |
Remove xfa/src/fxfa/src/common and xfa/src/fxfa/src
This Cl moves the code in xfa/src/fxfa/src/common to the diretory which
contains the respective implementations and removes the xfa/src/fxfa/src/common
directory. It them moves all of the code in xfa/src/fxfa/src up one level and
removes the xfa/src/fxfa/src
directory.
R=tsepez@chromium.org
Review URL: https://codereview.chromium.org/1770073003 .
Diffstat (limited to 'xfa/src/fxfa/fm2js/xfa_expression.h')
-rw-r--r-- | xfa/src/fxfa/fm2js/xfa_expression.h | 191 |
1 files changed, 191 insertions, 0 deletions
diff --git a/xfa/src/fxfa/fm2js/xfa_expression.h b/xfa/src/fxfa/fm2js/xfa_expression.h new file mode 100644 index 0000000000..ffcce1c4e0 --- /dev/null +++ b/xfa/src/fxfa/fm2js/xfa_expression.h @@ -0,0 +1,191 @@ +// Copyright 2014 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#ifndef XFA_SRC_FXFA_FM2JS_XFA_EXPRESSION_H_ +#define XFA_SRC_FXFA_FM2JS_XFA_EXPRESSION_H_ + +#include <memory> + +#include "xfa/src/fxfa/fm2js/xfa_simpleexpression.h" + +enum XFA_FM_EXPTYPE { + XFA_FM_EXPTYPE_UNKNOWN, + XFA_FM_EXPTYPE_FUNC, + XFA_FM_EXPTYPE_VAR, + XFA_FM_EXPTYPE_EXP, + XFA_FM_EXPTYPE_BLOCK, + XFA_FM_EXPTYPE_IF, + XFA_FM_EXPTYPE_BREAK, + XFA_FM_EXPTYPE_CONTINUE, +}; + +class CXFA_FMExpression { + public: + explicit CXFA_FMExpression(FX_DWORD line); + CXFA_FMExpression(FX_DWORD line, XFA_FM_EXPTYPE type); + virtual ~CXFA_FMExpression() {} + virtual void ToJavaScript(CFX_WideTextBuf& javascript); + virtual void ToImpliedReturnJS(CFX_WideTextBuf&); + FX_DWORD GetLine() { return m_line; } + XFA_FM_EXPTYPE GetExpType() const { return m_type; } + + protected: + XFA_FM_EXPTYPE m_type; + FX_DWORD m_line; +}; + +class CXFA_FMFunctionDefinition : public CXFA_FMExpression { + public: + CXFA_FMFunctionDefinition(FX_DWORD line, + FX_BOOL isGlobal, + const CFX_WideStringC& wsName, + CFX_WideStringCArray* pArguments, + CFX_PtrArray* pExpressions); + ~CXFA_FMFunctionDefinition() override; + void ToJavaScript(CFX_WideTextBuf& javascript) override; + void ToImpliedReturnJS(CFX_WideTextBuf&) override; + + private: + CFX_WideStringC m_wsName; + CFX_WideStringCArray* m_pArguments; + 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); + void ToJavaScript(CFX_WideTextBuf& javascript) override; + void ToImpliedReturnJS(CFX_WideTextBuf&) override; + + private: + CFX_WideStringC m_wsName; + std::unique_ptr<CXFA_FMExpression> m_pInit; +}; + +class CXFA_FMExpExpression : public CXFA_FMExpression { + public: + CXFA_FMExpExpression(FX_DWORD line, CXFA_FMSimpleExpression* pExpression); + void ToJavaScript(CFX_WideTextBuf& javascript) override; + void ToImpliedReturnJS(CFX_WideTextBuf&) override; + + private: + std::unique_ptr<CXFA_FMSimpleExpression> m_pExpression; +}; + +class CXFA_FMBlockExpression : public CXFA_FMExpression { + public: + CXFA_FMBlockExpression(FX_DWORD line, CFX_PtrArray* pExpressionList); + ~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); + void ToJavaScript(CFX_WideTextBuf& javascript) override; + void ToImpliedReturnJS(CFX_WideTextBuf&) override; + + private: + 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); + void ToJavaScript(CFX_WideTextBuf& javascript) override; + void ToImpliedReturnJS(CFX_WideTextBuf&) override; + + private: + 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: + 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); + void ToJavaScript(CFX_WideTextBuf& javascript) override; + void ToImpliedReturnJS(CFX_WideTextBuf&) override; + + private: + std::unique_ptr<CXFA_FMSimpleExpression> m_pCondition; + std::unique_ptr<CXFA_FMExpression> m_pExpression; +}; + +class CXFA_FMBreakExpression : public CXFA_FMExpression { + public: + 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: + 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, + const CFX_WideStringC& wsVariant, + CXFA_FMSimpleExpression* pAssignment, + CXFA_FMSimpleExpression* pAccessor, + int32_t iDirection, + CXFA_FMSimpleExpression* pStep, + CXFA_FMExpression* pList); + void ToJavaScript(CFX_WideTextBuf& javascript) override; + void ToImpliedReturnJS(CFX_WideTextBuf&) override; + + private: + CFX_WideStringC m_wsVariant; + std::unique_ptr<CXFA_FMSimpleExpression> m_pAssignment; + std::unique_ptr<CXFA_FMSimpleExpression> m_pAccessor; + int32_t m_iDirection; + 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); + ~CXFA_FMForeachExpression() override; + void ToJavaScript(CFX_WideTextBuf& javascript) override; + void ToImpliedReturnJS(CFX_WideTextBuf&) override; + + private: + CFX_WideStringC m_wsIdentifier; + CFX_PtrArray* m_pAccessors; + std::unique_ptr<CXFA_FMExpression> m_pList; +}; + +#endif // XFA_SRC_FXFA_FM2JS_XFA_EXPRESSION_H_ |