// 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 | |
#include "xfa_fm2js.h" | |
CXFA_FMProgram::CXFA_FMProgram() : m_globalFunction(0) {} | |
CXFA_FMProgram::~CXFA_FMProgram() { | |
if (m_globalFunction != 0) { | |
delete m_globalFunction; | |
m_globalFunction = 0; | |
} | |
} | |
int32_t CXFA_FMProgram::Init(const CFX_WideStringC& wsFormcalc) { | |
return m_parse.Init(wsFormcalc, &m_pErrorInfo); | |
} | |
int32_t CXFA_FMProgram::ParseProgram() { | |
CFX_PtrArray* expressions = 0; | |
m_parse.NextToken(); | |
if (!m_pErrorInfo.message.IsEmpty()) { | |
return -1; | |
} | |
expressions = m_parse.ParseTopExpression(); | |
if (!m_pErrorInfo.message.IsEmpty()) { | |
CXFA_FMExpression* e = 0; | |
for (int32_t u = 0; u < expressions->GetSize(); ++u) { | |
e = (CXFA_FMExpression*)expressions->GetAt(u); | |
if (e) { | |
delete e; | |
} | |
} | |
delete expressions; | |
return -1; | |
} | |
m_globalFunction = | |
new CXFA_FMFunctionDefinition(1, 1, FX_WSTRC(L""), 0, expressions); | |
return 0; | |
} | |
int32_t CXFA_FMProgram::TranslateProgram(CFX_WideTextBuf& wsJavaScript) { | |
m_globalFunction->ToJavaScript(wsJavaScript); | |
wsJavaScript.AppendChar(0); | |
return 0; | |
} |