From 26fc813975170de5040e9abe79a80b7034719944 Mon Sep 17 00:00:00 2001 From: Dan Sinclair Date: Thu, 22 Feb 2018 20:01:15 +0000 Subject: [formcalc] Cleanup function handling This CL creates a CXFA_FMAST root for the AST tree instead of overloading the CXFA_FMFunctionDefinition. This Removes the m_global from FunctionDefinition and simpifies the code. Change-Id: I9347769a291ef1753539701f334cc8dd69b7187e Reviewed-on: https://pdfium-review.googlesource.com/27590 Commit-Queue: dsinclair Reviewed-by: Ryan Harrison --- xfa/fxfa/fm2js/cxfa_fmparser.cpp | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) (limited to 'xfa/fxfa/fm2js/cxfa_fmparser.cpp') diff --git a/xfa/fxfa/fm2js/cxfa_fmparser.cpp b/xfa/fxfa/fm2js/cxfa_fmparser.cpp index 9beda2c564..30746a39c4 100644 --- a/xfa/fxfa/fm2js/cxfa_fmparser.cpp +++ b/xfa/fxfa/fm2js/cxfa_fmparser.cpp @@ -28,14 +28,12 @@ CXFA_FMParser::CXFA_FMParser(const WideStringView& wsFormcalc) CXFA_FMParser::~CXFA_FMParser() {} -std::unique_ptr CXFA_FMParser::Parse() { +std::unique_ptr CXFA_FMParser::Parse() { auto expressions = ParseExpressionList(); if (HasError()) return nullptr; - std::vector arguments; - return pdfium::MakeUnique( - true, L"", std::move(arguments), std::move(expressions)); + return pdfium::MakeUnique(std::move(expressions)); } bool CXFA_FMParser::NextToken() { @@ -101,14 +99,15 @@ std::unique_ptr CXFA_FMParser::ParseFunction() { std::vector> expressions; if (!CheckThenNext(TOKfunc)) return nullptr; + if (m_token.m_type != TOKidentifier) { m_error = true; return nullptr; - } else { - ident = m_token.m_string; - if (!NextToken()) - return nullptr; } + + ident = m_token.m_string; + if (!NextToken()) + return nullptr; if (!CheckThenNext(TOKlparen)) return nullptr; @@ -149,7 +148,7 @@ std::unique_ptr CXFA_FMParser::ParseFunction() { } return pdfium::MakeUnique( - false, ident, std::move(arguments), std::move(expressions)); + ident, std::move(arguments), std::move(expressions)); } // Expression := IfExpression | WhileExpression | ForExpression | -- cgit v1.2.3