Lines Matching refs:panda

36 namespace panda::pandasm {
38 void PrintError(const panda::pandasm::Error &e, const std::string &msg)
47 void PrintErrors(const panda::pandasm::ErrorList &warnings, const std::string &msg)
54 void PrintHelp(const panda::PandArgParser &pa_parser)
62 bool PrepareArgs(panda::PandArgParser &pa_parser, const panda::PandArg<std::string> &input_file,
63 const panda::PandArg<std::string> &output_file, const panda::PandArg<std::string> &log_file,
64 const panda::PandArg<bool> &help, const panda::PandArg<bool> &verbose,
65 const panda::PandArg<bool> &version, std::ifstream &inputfile, int argc, const char **argv)
73 panda::PrintPandaVersion();
85 panda::Logger::ComponentMask component_mask;
86 component_mask.set(panda::Logger::Component::ASSEMBLER);
87 component_mask.set(panda::Logger::Component::BYTECODE_OPTIMIZER);
88 panda::Logger::InitializeStdLogging(panda::Logger::Level::DEBUG, component_mask);
90 panda::Logger::ComponentMask component_mask;
91 component_mask.set(panda::Logger::Component::ASSEMBLER);
92 component_mask.set(panda::Logger::Component::BYTECODE_OPTIMIZER);
93 panda::Logger::InitializeFileLogging(log_file.GetValue(), panda::Logger::Level::DEBUG, component_mask);
107 bool Tokenize(panda::pandasm::Lexer &lexer, std::vector<std::vector<panda::pandasm::Token>> &tokens,
113 panda::pandasm::Tokens q = lexer.TokenizeString(s);
117 if (e.err != panda::pandasm::Error::ErrorType::ERR_NONE) {
129 bool ParseProgram(panda::pandasm::Parser &parser, std::vector<std::vector<panda::pandasm::Token>> &tokens,
130 const panda::PandArg<std::string> &input_file,
131 panda::Expected<panda::pandasm::Program, panda::pandasm::Error> &res)
142 bool DumpProgramInJson(panda::pandasm::Program &program, const panda::PandArg<std::string> &scopes_file)
158 bool EmitProgramInBinary(panda::pandasm::Program &program, panda::PandArgParser &pa_parser,
159 const panda::PandArg<std::string> &output_file, panda::PandArg<bool> &optimize,
160 panda::PandArg<bool> &size_stat)
165 panda::pandasm::AsmEmitter::PandaFileToPandaAsmMaps maps {};
166 panda::pandasm::AsmEmitter::PandaFileToPandaAsmMaps *mapsp = optimize.GetValue() ? &maps : nullptr;
168 if (!panda::pandasm::AsmEmitter::Emit(output_file.GetValue(), program, statp, mapsp, emit_debug_info)) {
169 std::cerr << "Failed to emit binary data: " << panda::pandasm::AsmEmitter::GetLastError() << std::endl;
190 bool BuildFiles(panda::pandasm::Program &program, panda::PandArgParser &pa_parser,
191 const panda::PandArg<std::string> &output_file, panda::PandArg<bool> &optimize,
192 panda::PandArg<bool> &size_stat, panda::PandArg<std::string> &scopes_file)
205 } // namespace panda::pandasm
209 panda::PandArg<bool> verbose("verbose", false, "Enable verbose output (will be printed to standard output)");
210 panda::PandArg<std::string> log_file("log-file", "", "(--log-file FILENAME) Set log file name");
211 panda::PandArg<std::string> scopes_file("dump-scopes", "",
213 panda::PandArg<bool> help("help", false, "Print this message and exit");
214 panda::PandArg<bool> size_stat("size-stat", false, "Print panda file size statistic");
215 panda::PandArg<bool> optimize("optimize", false, "Run the bytecode optimization");
216 panda::PandArg<bool> version {"version", false,
219 panda::PandArg<std::string> input_file("INPUT_FILE", "", "Path to the source assembly code");
220 panda::PandArg<std::string> output_file("OUTPUT_FILE", "", "Path to the generated binary code");
221 panda::PandArgParser pa_parser;
235 if (!panda::pandasm::PrepareArgs(pa_parser, input_file, output_file, log_file, help, verbose, version, inputfile,
242 panda::pandasm::Lexer lexer;
244 std::vector<std::vector<panda::pandasm::Token>> tokens;
252 panda::pandasm::Parser parser;
254 panda::Expected<panda::pandasm::Program, panda::pandasm::Error> res;
255 if (!panda::pandasm::ParseProgram(parser, tokens, input_file, res)) {
263 panda::pandasm::PrintErrors(w, "WARNING");
266 if (!panda::pandasm::BuildFiles(program, pa_parser, output_file, optimize, size_stat, scopes_file)) {