Lines Matching full:panda
39 namespace panda::pandasm { namespace
41 void PrintError(const panda::pandasm::Error &e, const std::string &msg) in PrintError()
50 void PrintErrors(const panda::pandasm::ErrorList &warnings, const std::string &msg) in PrintErrors()
57 void PrintHelp(const panda::PandArgParser &pa_parser) in PrintHelp()
65 bool PrepareArgs(panda::PandArgParser &pa_parser, const panda::PandArg<std::string> &input_file, in PrepareArgs()
66 … const panda::PandArg<std::string> &output_file, const panda::PandArg<std::string> &log_file, in PrepareArgs()
67 const panda::PandArg<bool> &help, const panda::PandArg<bool> &verbose, in PrepareArgs()
68 … const panda::PandArg<bool> &version, std::ifstream &inputfile, int argc, const char **argv) in PrepareArgs()
76 panda::PrintPandaVersion(); in PrepareArgs()
88 panda::Logger::ComponentMask component_mask; in PrepareArgs()
89 component_mask.set(panda::Logger::Component::ASSEMBLER); in PrepareArgs()
90 component_mask.set(panda::Logger::Component::BYTECODE_OPTIMIZER); in PrepareArgs()
91 panda::Logger::InitializeStdLogging(panda::Logger::Level::DEBUG, component_mask); in PrepareArgs()
93 panda::Logger::ComponentMask component_mask; in PrepareArgs()
94 component_mask.set(panda::Logger::Component::ASSEMBLER); in PrepareArgs()
95 component_mask.set(panda::Logger::Component::BYTECODE_OPTIMIZER); in PrepareArgs()
96 …panda::Logger::InitializeFileLogging(log_file.GetValue(), panda::Logger::Level::DEBUG, component_m… in PrepareArgs()
110 bool Tokenize(panda::pandasm::Lexer &lexer, std::vector<std::vector<panda::pandasm::Token>> &tokens, in Tokenize()
116 panda::pandasm::Tokens q = lexer.TokenizeString(s); in Tokenize()
120 if (e.err != panda::pandasm::Error::ErrorType::ERR_NONE) { in Tokenize()
132 bool ParseProgram(panda::pandasm::Parser &parser, std::vector<std::vector<panda::pandasm::Token>> &… in ParseProgram()
133 const panda::PandArg<std::string> &input_file, in ParseProgram()
134 panda::Expected<panda::pandasm::Program, panda::pandasm::Error> &res) in ParseProgram()
146 bool DumpProgramInJson(panda::pandasm::Program &program, const panda::PandArg<std::string> &scopes_… in DumpProgramInJson()
162 bool EmitProgramInBinary(panda::pandasm::Program &program, panda::PandArgParser &pa_parser, in EmitProgramInBinary()
163 … const panda::PandArg<std::string> &output_file, panda::PandArg<bool> &optimize, in EmitProgramInBinary()
164 panda::PandArg<bool> &size_stat) in EmitProgramInBinary()
169 panda::pandasm::AsmEmitter::PandaFileToPandaAsmMaps maps {}; in EmitProgramInBinary()
170 …panda::pandasm::AsmEmitter::PandaFileToPandaAsmMaps *mapsp = optimize.GetValue() ? &maps : nullptr; in EmitProgramInBinary()
172 …if (!panda::pandasm::AsmEmitter::Emit(output_file.GetValue(), program, statp, mapsp, emit_debug_in… in EmitProgramInBinary()
173 …std::cerr << "Failed to emit binary data: " << panda::pandasm::AsmEmitter::GetLastError() << std::… in EmitProgramInBinary()
179 … bool is_optimized = panda::bytecodeopt::OptimizeBytecode(&program, mapsp, output_file.GetValue()); in EmitProgramInBinary()
180 …if (!panda::pandasm::AsmEmitter::Emit(output_file.GetValue(), program, statp, mapsp, emit_debug_in… in EmitProgramInBinary()
181 …std::cerr << "Failed to emit binary data: " << panda::pandasm::AsmEmitter::GetLastError() << std::… in EmitProgramInBinary()
193 std::cout << "Panda file size statistic:" << std::endl; in EmitProgramInBinary()
208 bool BuildFiles(panda::pandasm::Program &program, panda::PandArgParser &pa_parser, in BuildFiles()
209 const panda::PandArg<std::string> &output_file, panda::PandArg<bool> &optimize, in BuildFiles()
210 panda::PandArg<bool> &size_stat, panda::PandArg<std::string> &scopes_file) in BuildFiles()
223 } // namespace panda::pandasm
227 …panda::PandArg<bool> verbose("verbose", false, "Enable verbose output (will be printed to standard… in main()
228 panda::PandArg<std::string> log_file("log-file", "", "(--log-file FILENAME) Set log file name"); in main()
229 panda::PandArg<std::string> scopes_file("dump-scopes", "", in main()
231 panda::PandArg<bool> help("help", false, "Print this message and exit"); in main()
232 panda::PandArg<bool> size_stat("size-stat", false, "Print panda file size statistic"); in main()
233 panda::PandArg<bool> optimize("optimize", false, "Run the bytecode optimization"); in main()
234 panda::PandArg<bool> version {"version", false, in main()
237 panda::PandArg<std::string> input_file("INPUT_FILE", "", "Path to the source assembly code"); in main()
238 panda::PandArg<std::string> output_file("OUTPUT_FILE", "", "Path to the generated binary code"); in main()
239 panda::PandArgParser pa_parser; in main()
253 …if (!panda::pandasm::PrepareArgs(pa_parser, input_file, output_file, log_file, help, verbose, vers… in main()
260 panda::pandasm::Lexer lexer; in main()
262 std::vector<std::vector<panda::pandasm::Token>> tokens; in main()
270 panda::pandasm::Parser parser; in main()
272 panda::Expected<panda::pandasm::Program, panda::pandasm::Error> res; in main()
273 if (!panda::pandasm::ParseProgram(parser, tokens, input_file, res)) { in main()
281 panda::pandasm::PrintErrors(w, "WARNING"); in main()
284 …if (!panda::pandasm::BuildFiles(program, pa_parser, output_file, optimize, size_stat, scopes_file)… in main()