From 2e9d47ac2c9a4ebf0821d10c766fafa85e6d3cb9 Mon Sep 17 00:00:00 2001 From: Dan Sinclair Date: Tue, 16 May 2017 15:14:02 -0400 Subject: Rename formcalc files to better match contents MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Most files match the contents. The expression files are named to match their base type even though they contain all the expression subclasses. Change-Id: I3b7705c7b206a9fa1afae8b677f765e8b788e84d Reviewed-on: https://pdfium-review.googlesource.com/5492 Commit-Queue: dsinclair Reviewed-by: Nicolás Peña Reviewed-by: Tom Sepez --- xfa/fxfa/fm2js/cxfa_fmexpression.h | 214 +++++++++++++++++++++++++++++++++++++ 1 file changed, 214 insertions(+) create mode 100644 xfa/fxfa/fm2js/cxfa_fmexpression.h (limited to 'xfa/fxfa/fm2js/cxfa_fmexpression.h') diff --git a/xfa/fxfa/fm2js/cxfa_fmexpression.h b/xfa/fxfa/fm2js/cxfa_fmexpression.h new file mode 100644 index 0000000000..c04bc2f117 --- /dev/null +++ b/xfa/fxfa/fm2js/cxfa_fmexpression.h @@ -0,0 +1,214 @@ +// 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_FXFA_FM2JS_CXFA_FMEXPRESSION_H_ +#define XFA_FXFA_FM2JS_CXFA_FMEXPRESSION_H_ + +#include +#include + +#include "xfa/fxfa/fm2js/cxfa_fmsimpleexpression.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(uint32_t line); + CXFA_FMExpression(uint32_t line, XFA_FM_EXPTYPE type); + virtual ~CXFA_FMExpression() {} + virtual bool ToJavaScript(CFX_WideTextBuf& javascript); + virtual bool ToImpliedReturnJS(CFX_WideTextBuf&); + uint32_t GetLine() { return m_line; } + XFA_FM_EXPTYPE GetExpType() const { return m_type; } + + private: + XFA_FM_EXPTYPE m_type; + uint32_t m_line; +}; + +class CXFA_FMFunctionDefinition : public CXFA_FMExpression { + public: + // Takes ownership of |arguments| and |expressions|. + CXFA_FMFunctionDefinition( + uint32_t line, + bool isGlobal, + const CFX_WideStringC& wsName, + std::vector&& arguments, + std::vector>&& expressions); + ~CXFA_FMFunctionDefinition() override; + + bool ToJavaScript(CFX_WideTextBuf& javascript) override; + bool ToImpliedReturnJS(CFX_WideTextBuf&) override; + + private: + CFX_WideStringC m_wsName; + std::vector m_pArguments; + std::vector> m_pExpressions; + bool m_isGlobal; +}; + +class CXFA_FMVarExpression : public CXFA_FMExpression { + public: + CXFA_FMVarExpression(uint32_t line, + const CFX_WideStringC& wsName, + std::unique_ptr pInit); + ~CXFA_FMVarExpression() override; + + bool ToJavaScript(CFX_WideTextBuf& javascript) override; + bool ToImpliedReturnJS(CFX_WideTextBuf&) override; + + private: + CFX_WideStringC m_wsName; + std::unique_ptr m_pInit; +}; + +class CXFA_FMExpExpression : public CXFA_FMExpression { + public: + CXFA_FMExpExpression(uint32_t line, + std::unique_ptr pExpression); + ~CXFA_FMExpExpression() override; + + bool ToJavaScript(CFX_WideTextBuf& javascript) override; + bool ToImpliedReturnJS(CFX_WideTextBuf&) override; + + private: + std::unique_ptr m_pExpression; +}; + +class CXFA_FMBlockExpression : public CXFA_FMExpression { + public: + CXFA_FMBlockExpression( + uint32_t line, + std::vector>&& pExpressionList); + ~CXFA_FMBlockExpression() override; + + bool ToJavaScript(CFX_WideTextBuf& javascript) override; + bool ToImpliedReturnJS(CFX_WideTextBuf&) override; + + private: + std::vector> m_ExpressionList; +}; + +class CXFA_FMDoExpression : public CXFA_FMExpression { + public: + CXFA_FMDoExpression(uint32_t line, std::unique_ptr pList); + ~CXFA_FMDoExpression() override; + + bool ToJavaScript(CFX_WideTextBuf& javascript) override; + bool ToImpliedReturnJS(CFX_WideTextBuf&) override; + + private: + std::unique_ptr m_pList; +}; + +class CXFA_FMIfExpression : public CXFA_FMExpression { + public: + CXFA_FMIfExpression(uint32_t line, + std::unique_ptr pExpression, + std::unique_ptr pIfExpression, + std::unique_ptr pElseExpression); + ~CXFA_FMIfExpression() override; + + bool ToJavaScript(CFX_WideTextBuf& javascript) override; + bool ToImpliedReturnJS(CFX_WideTextBuf&) override; + + private: + std::unique_ptr m_pExpression; + std::unique_ptr m_pIfExpression; + std::unique_ptr m_pElseExpression; +}; + +class CXFA_FMLoopExpression : public CXFA_FMExpression { + public: + explicit CXFA_FMLoopExpression(uint32_t line) : CXFA_FMExpression(line) {} + ~CXFA_FMLoopExpression() override; + bool ToJavaScript(CFX_WideTextBuf& javascript) override; + bool ToImpliedReturnJS(CFX_WideTextBuf&) override; +}; + +class CXFA_FMWhileExpression : public CXFA_FMLoopExpression { + public: + CXFA_FMWhileExpression(uint32_t line, + std::unique_ptr pCodition, + std::unique_ptr pExpression); + ~CXFA_FMWhileExpression() override; + + bool ToJavaScript(CFX_WideTextBuf& javascript) override; + bool ToImpliedReturnJS(CFX_WideTextBuf&) override; + + private: + std::unique_ptr m_pCondition; + std::unique_ptr m_pExpression; +}; + +class CXFA_FMBreakExpression : public CXFA_FMExpression { + public: + explicit CXFA_FMBreakExpression(uint32_t line); + ~CXFA_FMBreakExpression() override; + bool ToJavaScript(CFX_WideTextBuf& javascript) override; + bool ToImpliedReturnJS(CFX_WideTextBuf&) override; +}; + +class CXFA_FMContinueExpression : public CXFA_FMExpression { + public: + explicit CXFA_FMContinueExpression(uint32_t line); + ~CXFA_FMContinueExpression() override; + bool ToJavaScript(CFX_WideTextBuf& javascript) override; + bool ToImpliedReturnJS(CFX_WideTextBuf&) override; +}; + +class CXFA_FMForExpression : public CXFA_FMLoopExpression { + public: + CXFA_FMForExpression(uint32_t line, + const CFX_WideStringC& wsVariant, + std::unique_ptr pAssignment, + std::unique_ptr pAccessor, + int32_t iDirection, + std::unique_ptr pStep, + std::unique_ptr pList); + ~CXFA_FMForExpression() override; + + bool ToJavaScript(CFX_WideTextBuf& javascript) override; + bool ToImpliedReturnJS(CFX_WideTextBuf&) override; + + private: + CFX_WideStringC m_wsVariant; + std::unique_ptr m_pAssignment; + std::unique_ptr m_pAccessor; + const bool m_bDirection; + std::unique_ptr m_pStep; + std::unique_ptr m_pList; +}; + +class CXFA_FMForeachExpression : public CXFA_FMLoopExpression { + public: + // Takes ownership of |pAccessors|. + CXFA_FMForeachExpression( + uint32_t line, + const CFX_WideStringC& wsIdentifier, + std::vector>&& pAccessors, + std::unique_ptr pList); + ~CXFA_FMForeachExpression() override; + + bool ToJavaScript(CFX_WideTextBuf& javascript) override; + bool ToImpliedReturnJS(CFX_WideTextBuf&) override; + + private: + CFX_WideStringC m_wsIdentifier; + std::vector> m_pAccessors; + std::unique_ptr m_pList; +}; + +#endif // XFA_FXFA_FM2JS_CXFA_FMEXPRESSION_H_ -- cgit v1.2.3