From d8ed9a5c35a8b3544b5d28ae179760af0d2acd43 Mon Sep 17 00:00:00 2001 From: hufeng Date: Fri, 1 Jul 2022 16:42:58 +0800 Subject: [PATCH] Fix ts2abc's codeCheck of G.INC.11-CPP Description:Use Namespace covering global API e.g.GenerateProgram to avoid pollute global environment. Signed-off-by: hufeng Change-Id: I48c70552305d886699927eb6d35bebec54c7e3be --- ts2panda/ts2abc/main.cpp | 34 ++++++++--------- ts2panda/ts2abc/tests/functions_test.cpp | 2 +- ts2panda/ts2abc/ts2abc.cpp | 47 ++++++++++++------------ ts2panda/ts2abc/ts2abc.h | 2 + 4 files changed, 44 insertions(+), 41 deletions(-) diff --git a/ts2panda/ts2abc/main.cpp b/ts2panda/ts2abc/main.cpp index 382a88797c..4a5b3ecd98 100644 --- a/ts2panda/ts2abc/main.cpp +++ b/ts2panda/ts2abc/main.cpp @@ -32,21 +32,21 @@ int Preprocess(const panda::ts2abc::Options &options, const panda::PandArgParser std::cerr << "Usage example: ts2abc test.json test.abc"<< std::endl; std::cerr << usage << std::endl; std::cerr << argParser.GetHelpString(); - return RETURN_FAILED; + return panda::ts2abc::RETURN_FAILED; } - if (!HandleJsonFile(input, data)) { - return RETURN_FAILED; + if (!panda::ts2abc::HandleJsonFile(input, data)) { + return panda::ts2abc::RETURN_FAILED; } } else { output = options.GetTailArg1(); if (output.empty()) { std::cerr << usage << std::endl; std::cerr << argParser.GetHelpString(); - return RETURN_FAILED; + return panda::ts2abc::RETURN_FAILED; } } - return RETURN_SUCCESS; + return panda::ts2abc::RETURN_SUCCESS; } int main(int argc, const char *argv[]) @@ -59,44 +59,44 @@ int main(int argc, const char *argv[]) if (!argParser.Parse(argc, argv)) { std::cerr << argParser.GetErrorString(); std::cerr << argParser.GetHelpString(); - return RETURN_FAILED; + return panda::ts2abc::RETURN_FAILED; } std::string usage = "Usage: ts2abc [OPTIONS]... [ARGS]..."; if (options.GetHelpArg()) { std::cout << usage << std::endl; std::cout << argParser.GetHelpString(); - return RETURN_SUCCESS; + return panda::ts2abc::RETURN_SUCCESS; } if (options.GetBcVersionArg() || options.GetBcMinVersionArg()) { std::string version = options.GetBcVersionArg() ? panda::panda_file::GetVersion(panda::panda_file::version) : panda::panda_file::GetVersion(panda::panda_file::minVersion); std::cout << version << std::endl; - return RETURN_SUCCESS; + return panda::ts2abc::RETURN_SUCCESS; } - if ((options.GetOptLevelArg() < static_cast(OptLevel::O_LEVEL0)) || - (options.GetOptLevelArg() > static_cast(OptLevel::O_LEVEL2))) { + if ((options.GetOptLevelArg() < static_cast(panda::ts2abc::OptLevel::O_LEVEL0)) || + (options.GetOptLevelArg() > static_cast(panda::ts2abc::OptLevel::O_LEVEL2))) { std::cerr << "Incorrect optimization level value" << std::endl; std::cerr << usage << std::endl; std::cerr << argParser.GetHelpString(); - return RETURN_FAILED; + return panda::ts2abc::RETURN_FAILED; } std::string output; std::string data = ""; std::string optLogLevel(options.GetOptLogLevelArg()); - if (Preprocess(options, argParser, output, data, usage) == RETURN_FAILED) { - return RETURN_FAILED; + if (Preprocess(options, argParser, output, data, usage) == panda::ts2abc::RETURN_FAILED) { + return panda::ts2abc::RETURN_FAILED; } - if (!GenerateProgram(data, output, options.GetCompileByPipeArg(), - options.GetOptLevelArg(), optLogLevel)) { + if (!panda::ts2abc::GenerateProgram(data, output, options.GetCompileByPipeArg(), + options.GetOptLevelArg(), optLogLevel)) { std::cerr << "call GenerateProgram fail" << std::endl; - return RETURN_FAILED; + return panda::ts2abc::RETURN_FAILED; } - return RETURN_SUCCESS; + return panda::ts2abc::RETURN_SUCCESS; } diff --git a/ts2panda/ts2abc/tests/functions_test.cpp b/ts2panda/ts2abc/tests/functions_test.cpp index bb7974d878..0ce4bae4bb 100644 --- a/ts2panda/ts2abc/tests/functions_test.cpp +++ b/ts2panda/ts2abc/tests/functions_test.cpp @@ -43,7 +43,7 @@ namespace ARK::Ts2Abc::Ts2Abc { EXPECT_EQ(ret, 1); Json::Value rootValue; ret = ParseJson(data, rootValue); - EXPECT_EQ(ret, RETURN_SUCCESS); + EXPECT_EQ(ret, panda::ts2abc::RETURN_SUCCESS); function = rootValue["func_body"]; } const void FunctionTest::TearDown() {} diff --git a/ts2panda/ts2abc/ts2abc.cpp b/ts2panda/ts2abc/ts2abc.cpp index 75407dedb1..f66e50ce9f 100644 --- a/ts2panda/ts2abc/ts2abc.cpp +++ b/ts2panda/ts2abc/ts2abc.cpp @@ -33,31 +33,30 @@ #include "optimize_bytecode.h" #endif -namespace { - // pandasm definitions - constexpr const auto LANG_EXT = panda::pandasm::extensions::Language::ECMASCRIPT; - const std::string WHOLE_LINE; - bool g_debugModeEnabled = false; - bool g_debugLogEnabled = false; - int g_optLevel = 0; - bool g_enableTypeinfo = false; - bool g_displayTypeinfo = false; - std::string g_optLogLevel = "error"; - uint32_t g_literalArrayCount = 0; - using ts2abc_type_adapter::TypeAdapter; - - constexpr std::size_t BOUND_LEFT = 0; - constexpr std::size_t BOUND_RIGHT = 0; - constexpr std::size_t LINE_NUMBER = 0; - constexpr bool IS_DEFINED = true; - int g_opCodeIndex = 0; - std::unordered_map g_opcodeMap = { +namespace panda::ts2abc { +// pandasm definitions +constexpr const auto LANG_EXT = panda::pandasm::extensions::Language::ECMASCRIPT; +const std::string WHOLE_LINE; +bool g_debugModeEnabled = false; +bool g_debugLogEnabled = false; +int g_optLevel = 0; +bool g_enableTypeinfo = false; +bool g_displayTypeinfo = false; +std::string g_optLogLevel = "error"; +uint32_t g_literalArrayCount = 0; +using ts2abc_type_adapter::TypeAdapter; + +constexpr std::size_t BOUND_LEFT = 0; +constexpr std::size_t BOUND_RIGHT = 0; +constexpr std::size_t LINE_NUMBER = 0; +constexpr bool IS_DEFINED = true; +int g_opCodeIndex = 0; +std::unordered_map g_opcodeMap = { #define OPLIST(opcode, name, optype, width, flags, def_idx, use_idxs) {g_opCodeIndex++, panda::pandasm::Opcode::opcode}, - PANDA_INSTRUCTION_LIST(OPLIST) + PANDA_INSTRUCTION_LIST(OPLIST) #undef OPLIST - {-1, panda::pandasm::Opcode::INVALID}, - }; -} + {-1, panda::pandasm::Opcode::INVALID}, +}; // pandasm helpers static panda::pandasm::Record MakeRecordDefinition(const std::string &name, const std::string &wholeLine, @@ -1395,3 +1394,5 @@ bool HandleJsonFile(const std::string &input, std::string &data) return true; } + +} // namespace panda::ts2abc diff --git a/ts2panda/ts2abc/ts2abc.h b/ts2panda/ts2abc/ts2abc.h index 9e5a7653fe..019b5e8c7f 100644 --- a/ts2panda/ts2abc/ts2abc.h +++ b/ts2panda/ts2abc/ts2abc.h @@ -28,6 +28,7 @@ #include "assembly-emitter.h" #include "json/json.h" +namespace panda::ts2abc { enum class JsonType { FUNCTION = 0, RECORD, @@ -57,5 +58,6 @@ void ParseDebugMode(const Json::Value &rootValue); std::string ParseString(const std::string &data); int ParseJson(const std::string &data, Json::Value &rootValue); panda::pandasm::Function GetFunctionDefintion(const Json::Value &function); +} // namespace panda::ts2abc #endif // TS2PANDA_TS2ABC_TS2ABC_H_ -- Gitee