// Copyright 2017 The PDFium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "core/fxcrt/fx_string.h"
#include "testing/fuzzers/pdfium_fuzzer_util.h"
#include "testing/fuzzers/xfa_process_state.h"
#include "xfa/fxfa/formcalc/cxfa_fmparser.h"

extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
  auto* state = static_cast<XFAProcessState*>(FPDF_GetFuzzerPerProcessState());
  WideString input = WideString::FromUTF8(ByteStringView(data, size));
  CXFA_FMLexer lexer(input.AsStringView());
  CXFA_FMParser parser(state->GetHeap(), &lexer);
  parser.Parse();
  state->ForceGCAndPump();
  return 0;
}
