/** * Copyright (c) 2021-2022 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef ASSEMBLER_PANDASM_H #define ASSEMBLER_PANDASM_H #include "utils/pandargs.h" namespace panda::pandasm { void PrintError(const panda::pandasm::Error &e, const std::string &msg); void PrintErrors(const panda::pandasm::ErrorList &warnings, const std::string &msg); bool PrepareArgs(panda::PandArgParser &pa_parser, const panda::PandArg &input_file, const panda::PandArg &output_file, const panda::PandArg &log_file, const panda::PandArg &help, const panda::PandArg &verbose, std::ifstream &inputfile, int argc, char **argv); bool Tokenize(panda::pandasm::Lexer &lexer, std::vector> &tokens, std::ifstream &inputfile); bool ParseProgram(panda::pandasm::Parser &parser, std::vector> &tokens, const panda::PandArg &input_file, panda::Expected &res); bool DumpProgramInJson(panda::pandasm::Program &program, const panda::PandArg &scopes_file); bool EmitProgramInBinary(panda::pandasm::Program &program, panda::PandArgParser &pa_parser, const panda::PandArg &output_file, panda::PandArg &optimize, panda::PandArg &size_stat); bool BuildFiles(panda::pandasm::Program &program, panda::PandArgParser &pa_parser, const panda::PandArg &output_file, panda::PandArg &optimize, panda::PandArg &size_stat, panda::PandArg &scopes_file); } // namespace panda::pandasm #endif // ASSEMBLER_PANDASM_H