xref: /llvm-project/flang/runtime/edit-input.h (revision 1f8790050b0e99e7b46cc69518aa84f46f50738e)
1 //===-- runtime/edit-input.h ------------------------------------*- C++ -*-===//
2 //
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
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef FORTRAN_RUNTIME_EDIT_INPUT_H_
10 #define FORTRAN_RUNTIME_EDIT_INPUT_H_
11 
12 #include "format.h"
13 #include "io-stmt.h"
14 #include "flang/Decimal/decimal.h"
15 
16 namespace Fortran::runtime::io {
17 
18 bool EditIntegerInput(IoStatementState &, const DataEdit &, void *, int kind);
19 
20 template <int binaryPrecision>
21 bool EditRealInput(IoStatementState &, const DataEdit &, void *);
22 
23 bool EditLogicalInput(IoStatementState &, const DataEdit &, bool &);
24 bool EditDefaultCharacterInput(
25     IoStatementState &, const DataEdit &, char *, std::size_t);
26 
27 extern template bool EditRealInput<8>(
28     IoStatementState &, const DataEdit &, void *);
29 extern template bool EditRealInput<11>(
30     IoStatementState &, const DataEdit &, void *);
31 extern template bool EditRealInput<24>(
32     IoStatementState &, const DataEdit &, void *);
33 extern template bool EditRealInput<53>(
34     IoStatementState &, const DataEdit &, void *);
35 extern template bool EditRealInput<64>(
36     IoStatementState &, const DataEdit &, void *);
37 extern template bool EditRealInput<113>(
38     IoStatementState &, const DataEdit &, void *);
39 } // namespace Fortran::runtime::io
40 #endif // FORTRAN_RUNTIME_EDIT_INPUT_H_
41