1 //===-- runtime/edit-input.h ------------------------------------*- C++ -*-===//
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
9 #ifndef FORTRAN_RUNTIME_EDIT_INPUT_H_
10 #define FORTRAN_RUNTIME_EDIT_INPUT_H_
14 #include "flang/Decimal/decimal.h"
16 namespace Fortran::runtime::io
{
18 bool EditIntegerInput(IoStatementState
&, const DataEdit
&, void *, int kind
);
21 bool EditRealInput(IoStatementState
&, const DataEdit
&, void *);
23 bool EditLogicalInput(IoStatementState
&, const DataEdit
&, bool &);
25 template <typename CHAR
>
26 bool EditCharacterInput(
27 IoStatementState
&, const DataEdit
&, CHAR
*, std::size_t);
29 extern template bool EditRealInput
<2>(
30 IoStatementState
&, const DataEdit
&, void *);
31 extern template bool EditRealInput
<3>(
32 IoStatementState
&, const DataEdit
&, void *);
33 extern template bool EditRealInput
<4>(
34 IoStatementState
&, const DataEdit
&, void *);
35 extern template bool EditRealInput
<8>(
36 IoStatementState
&, const DataEdit
&, void *);
37 extern template bool EditRealInput
<10>(
38 IoStatementState
&, const DataEdit
&, void *);
39 // TODO: double/double
40 extern template bool EditRealInput
<16>(
41 IoStatementState
&, const DataEdit
&, void *);
43 extern template bool EditCharacterInput(
44 IoStatementState
&, const DataEdit
&, char *, std::size_t);
45 extern template bool EditCharacterInput(
46 IoStatementState
&, const DataEdit
&, char16_t
*, std::size_t);
47 extern template bool EditCharacterInput(
48 IoStatementState
&, const DataEdit
&, char32_t
*, std::size_t);
50 } // namespace Fortran::runtime::io
51 #endif // FORTRAN_RUNTIME_EDIT_INPUT_H_