summaryrefslogtreecommitdiffstats
path: root/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/frame_list.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/frame_list.cpp')
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/frame_list.cpp299
1 files changed, 0 insertions, 299 deletions
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/frame_list.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/frame_list.cpp
deleted file mode 100644
index 82bc3781..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/frame_list.cpp
+++ /dev/null
@@ -1,299 +0,0 @@
-/**
- * @file frame_list.cpp
- * mainly used to handle preprocessor stuff
- *
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#include "frame_list.h"
-
-#include "prototypes.h"
-
-
-namespace
-{
-
-void fl_log_frms(log_sev_t logsev, const char *txt, const ParseFrame &frm, const std::vector<ParseFrame> &frames);
-
-
-//! Logs the entire parse frame stack
-void fl_log_all(log_sev_t logsev, const std::vector<ParseFrame> &frames);
-
-
-/**
- * Copy the top element of the frame list into the ParseFrame.
- *
- * If the frame list is empty nothing happens.
- *
- * This is called on #else and #elif.
- */
-void fl_copy_tos(ParseFrame &pf, const std::vector<ParseFrame> &frames);
-
-
-/**
- * Copy the 2nd top element off the list into the ParseFrame.
- * This is called on #else and #elif.
- * The stack contains [...] [base] [if] at this point.
- * We want to copy [base].
- */
-void fl_copy_2nd_tos(ParseFrame &pf, const std::vector<ParseFrame> &frames);
-
-
-//! Deletes the top element from the list.
-void fl_trash_tos(std::vector<ParseFrame> &frames);
-
-
-//! Logs one parse frame
-void fl_log(log_sev_t logsev, const ParseFrame &frm)
-{
- LOG_FMT(logsev, "[%s] BrLevel=%zu Level=%zu PseTos=%zu\n",
- get_token_name(frm.in_ifdef), frm.brace_level, frm.level, frm.size() - 1);
-
- LOG_FMT(logsev, " *");
-
- for (size_t idx = 1; idx < frm.size(); idx++)
- {
- LOG_FMT(logsev, " [%s-%s]", get_token_name(frm.at(idx).type),
- get_brace_stage_name(frm.at(idx).stage));
- }
-
- LOG_FMT(logsev, "\n");
-}
-
-
-void fl_log_frms(log_sev_t logsev,
- const char *txt,
- const ParseFrame &frm,
- const std::vector<ParseFrame> &frames)
-{
- LOG_FMT(logsev, "%s Parse Frames(%zu):", txt, frames.size());
-
- for (size_t idx = 0; idx < frames.size(); idx++)
- {
- LOG_FMT(logsev, " [%s-%zu]", get_token_name(frames.at(idx).in_ifdef),
- frames.at(idx).ref_no);
- }
-
- LOG_FMT(logsev, "-[%s-%zu]\n", get_token_name(frm.in_ifdef), frm.ref_no);
-}
-
-
-void fl_log_all(log_sev_t logsev, const std::vector<ParseFrame> &frames)
-{
- LOG_FMT(logsev, "##=- Parse Frame : %zu entries\n", frames.size());
-
- for (size_t idx = 0; idx < frames.size(); idx++)
- {
- LOG_FMT(logsev, "## idx is %zu, ", idx);
-
- fl_log(logsev, frames.at(idx));
- }
-
- LOG_FMT(logsev, "##=-\n");
-}
-
-
-void fl_copy_tos(ParseFrame &pf, const std::vector<ParseFrame> &frames)
-{
- if (!frames.empty())
- {
- pf = *std::prev(std::end(frames));
- }
- LOG_FMT(LPF, "%s(%d): frame_count is %zu\n", __func__, __LINE__, frames.size());
-}
-
-
-void fl_copy_2nd_tos(ParseFrame &pf, const std::vector<ParseFrame> &frames)
-{
- if (frames.size() > 1)
- {
- pf = *std::prev(std::end(frames), 2);
- }
- LOG_FMT(LPF, "%s(%d): frame_count is %zu\n", __func__, __LINE__, frames.size());
-}
-
-
-void fl_trash_tos(std::vector<ParseFrame> &frames)
-{
- if (!frames.empty())
- {
- frames.pop_back();
- }
- LOG_FMT(LPF, "%s(%d): frame_count is %zu\n", __func__, __LINE__, frames.size());
-}
-
-} // namespace
-
-
-void fl_push(std::vector<ParseFrame> &frames, ParseFrame &frm)
-{
- static int ref_no = 1;
-
- frames.push_back(frm);
- frm.ref_no = ref_no++;
-
- LOG_FMT(LPF, "%s(%d): frame_count is %zu\n", __func__, __LINE__, frames.size());
-}
-
-
-void fl_pop(std::vector<ParseFrame> &frames, ParseFrame &pf)
-{
- if (frames.empty())
- {
- return;
- }
- fl_copy_tos(pf, frames);
- fl_trash_tos(frames);
-}
-
-
-int fl_check(std::vector<ParseFrame> &frames, ParseFrame &frm, int &pp_level, chunk_t *pc)
-{
- if (pc->type != CT_PREPROC)
- {
- return(pp_level);
- }
- chunk_t *next = chunk_get_next(pc);
-
- if (next == nullptr)
- {
- return(pp_level);
- }
-
- if (get_chunk_parent_type(pc) != next->type)
- {
- LOG_FMT(LNOTE, "%s(%d): Preproc parent not set correctly on orig_line %zu: got %s expected %s\n",
- __func__, __LINE__, pc->orig_line, get_token_name(get_chunk_parent_type(pc)),
- get_token_name(next->type));
- set_chunk_parent(pc, next->type);
- }
- LOG_FMT(LPFCHK, "%s(%d): orig_line is %zu, %s\n",
- __func__, __LINE__, pc->orig_line, get_token_name(get_chunk_parent_type(pc)));
- fl_log_frms(LPFCHK, "TOP", frm, frames);
-
-
- int out_pp_level = pp_level;
- const c_token_t in_ifdef = frm.in_ifdef;
- const size_t b4_cnt = frames.size();
-
- const char *txt = nullptr;
-
- if (pc->flags.test(PCF_IN_PREPROC))
- {
- LOG_FMT(LPF, " <In> ");
- fl_log(LPF, frm);
-
- if (get_chunk_parent_type(pc) == CT_PP_IF)
- {
- // An #if pushes a copy of the current frame on the stack
- pp_level++;
- fl_push(frames, frm);
- frm.in_ifdef = CT_PP_IF;
- txt = "if-push";
- }
- else if (get_chunk_parent_type(pc) == CT_PP_ELSE)
- {
- if (out_pp_level == 0)
- {
- fprintf(stderr, "%s(%d): pp_level is ZERO, cannot be decremented, at line %zu, column %zu\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col);
- log_flush(true);
- exit(EX_SOFTWARE);
- }
- out_pp_level--;
-
- /*
- * For #else of #elif, we want to keep the #if part and throw out the
- * else parts.
- * We check to see what the top type is to see if we just push or
- * pop and then push.
- * We need to use the copy right before the if.
- */
- if (frm.in_ifdef == CT_PP_IF)
- {
- // we have [...] [base]-[if], so push an [else]
- fl_push(frames, frm);
- frm.in_ifdef = CT_PP_ELSE;
- }
- // we have [...] [base] [if]-[else], copy [base] over [else]
- fl_copy_2nd_tos(frm, frames);
- frm.in_ifdef = CT_PP_ELSE;
- txt = "else-push";
- }
- else if (get_chunk_parent_type(pc) == CT_PP_ENDIF)
- {
- /*
- * we may have [...] [base] [if]-[else] or [...] [base]-[if].
- * Throw out the [else].
- */
- if (pp_level == 0)
- {
- // cpd.pp_level is ZERO, cannot be decremented.
- fprintf(stderr, "%s(%d): #endif found, at line %zu, column %zu, without corresponding #if\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col);
- log_flush(true);
- exit(EX_SOFTWARE);
- }
- pp_level--;
-
- if (out_pp_level == 0)
- {
- fprintf(stderr, "%s(%d): pp_level is ZERO, cannot be decremented, at line %zu, column %zu\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col);
- log_flush(true);
- exit(EX_SOFTWARE);
- }
- out_pp_level--;
-
- if (frm.in_ifdef == CT_PP_ELSE)
- {
- /*
- * We have: [...] [base] [if]-[else]
- * We want: [...]-[if]
- */
- fl_copy_tos(frm, frames); // [...] [base] [if]-[if]
-
- if (frames.size() < 2)
- {
- fprintf(stderr, "Number of 'frame' is too small.\n");
- fprintf(stderr, "Please make a report.\n");
- log_flush(true);
- exit(EX_SOFTWARE);
- }
- frm.in_ifdef = frames[frames.size() - 2].in_ifdef;
- fl_trash_tos(frames); // [...] [base]-[if]
- fl_trash_tos(frames); // [...]-[if]
-
- txt = "endif-trash/pop";
- }
- else if (frm.in_ifdef == CT_PP_IF)
- {
- /*
- * We have: [...] [base] [if]
- * We want: [...] [base]
- */
- fl_pop(frames, frm);
- txt = "endif-pop";
- }
- else
- {
- txt = "???";
- }
- }
- }
-
- if (txt != nullptr)
- {
- LOG_FMT(LPF, "%s(%d): orig_line is %zu, type is %s: %s in_ifdef is %s/%s, counts is %zu, frame_count is %zu\n",
- __func__, __LINE__, pc->orig_line,
- get_token_name(get_chunk_parent_type(pc)), txt, get_token_name(in_ifdef),
- get_token_name(frm.in_ifdef), b4_cnt, frames.size());
- fl_log_all(LPF, frames);
- LOG_FMT(LPF, " <Out>");
- fl_log(LPF, frm);
- }
- fl_log_frms(LPFCHK, "END", frm, frames);
-
- return(out_pp_level);
-} // fl_check