1b2a28edaSopenharmony_ci// Copyright (c) 2014-2019 The Khronos Group Inc. 2b2a28edaSopenharmony_ci// 3b2a28edaSopenharmony_ci// Permission is hereby granted, free of charge, to any person obtaining a copy 4b2a28edaSopenharmony_ci// of this software and/or associated documentation files (the "Materials"), 5b2a28edaSopenharmony_ci// to deal in the Materials without restriction, including without limitation 6b2a28edaSopenharmony_ci// the rights to use, copy, modify, merge, publish, distribute, sublicense, 7b2a28edaSopenharmony_ci// and/or sell copies of the Materials, and to permit persons to whom the 8b2a28edaSopenharmony_ci// Materials are furnished to do so, subject to the following conditions: 9b2a28edaSopenharmony_ci// 10b2a28edaSopenharmony_ci// The above copyright notice and this permission notice shall be included in 11b2a28edaSopenharmony_ci// all copies or substantial portions of the Materials. 12b2a28edaSopenharmony_ci// 13b2a28edaSopenharmony_ci// MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS 14b2a28edaSopenharmony_ci// STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND 15b2a28edaSopenharmony_ci// HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ 16b2a28edaSopenharmony_ci// 17b2a28edaSopenharmony_ci// THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 18b2a28edaSopenharmony_ci// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19b2a28edaSopenharmony_ci// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 20b2a28edaSopenharmony_ci// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21b2a28edaSopenharmony_ci// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 22b2a28edaSopenharmony_ci// FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS 23b2a28edaSopenharmony_ci// IN THE MATERIALS. 24b2a28edaSopenharmony_ci 25b2a28edaSopenharmony_ci// 26b2a28edaSopenharmony_ci// Print headers for SPIR-V in several languages. 27b2a28edaSopenharmony_ci// 28b2a28edaSopenharmony_ci 29b2a28edaSopenharmony_ci#pragma once 30b2a28edaSopenharmony_ci#ifndef header 31b2a28edaSopenharmony_ci#define header 32b2a28edaSopenharmony_ci 33b2a28edaSopenharmony_ci#include <iostream> 34b2a28edaSopenharmony_ci 35b2a28edaSopenharmony_cinamespace spv { 36b2a28edaSopenharmony_ci // Languages supported 37b2a28edaSopenharmony_ci enum TLanguage { 38b2a28edaSopenharmony_ci ELangC, // C 39b2a28edaSopenharmony_ci ELangCPP, // C++03 40b2a28edaSopenharmony_ci ELangCPP11, // C++11 41b2a28edaSopenharmony_ci ELangJSON, // JSON 42b2a28edaSopenharmony_ci ELangLua, // Lua 43b2a28edaSopenharmony_ci ELangPython, // Python 44b2a28edaSopenharmony_ci ELangCSharp, // CSharp 45b2a28edaSopenharmony_ci ELangD, // D 46b2a28edaSopenharmony_ci ELangBeef, // Beef 47b2a28edaSopenharmony_ci 48b2a28edaSopenharmony_ci ELangAll, // print headers in all languages to files 49b2a28edaSopenharmony_ci }; 50b2a28edaSopenharmony_ci 51b2a28edaSopenharmony_ci // Generate header for requested language 52b2a28edaSopenharmony_ci void PrintHeader(TLanguage, std::ostream&); 53b2a28edaSopenharmony_ci} // namespace spv 54b2a28edaSopenharmony_ci 55b2a28edaSopenharmony_ci#endif // header 56