{"id":16607566,"url":"https://github.com/davidgraeff/analyseconditionalcomments","last_synced_at":"2026-04-22T02:31:26.433Z","repository":{"id":4940470,"uuid":"6097418","full_name":"davidgraeff/analyseConditionalComments","owner":"davidgraeff","description":"Analyse the usage of conditional comments in c/c++ software. Output via svg, png, pdf. Uses QT for the gui and librsvg for svg-\u003epdf,png conversion.","archived":false,"fork":false,"pushed_at":"2013-12-17T14:24:40.000Z","size":524,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-17T04:06:13.968Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://davidgraeff.github.com/analyseConditionalComments","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"yalesov/php-yaml","license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/davidgraeff.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-10-05T22:01:15.000Z","updated_at":"2013-12-17T14:24:40.000Z","dependencies_parsed_at":"2022-09-16T19:00:35.536Z","dependency_job_id":null,"html_url":"https://github.com/davidgraeff/analyseConditionalComments","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/davidgraeff/analyseConditionalComments","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidgraeff%2FanalyseConditionalComments","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidgraeff%2FanalyseConditionalComments/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidgraeff%2FanalyseConditionalComments/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidgraeff%2FanalyseConditionalComments/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/davidgraeff","download_url":"https://codeload.github.com/davidgraeff/analyseConditionalComments/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidgraeff%2FanalyseConditionalComments/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32118066,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-22T00:31:26.853Z","status":"online","status_checked_at":"2026-04-22T02:00:05.693Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-12T01:23:09.289Z","updated_at":"2026-04-22T02:31:26.413Z","avatar_url":"https://github.com/davidgraeff.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"Analyse Conditional Comments (#ifdefs)\n======================================\nHeavy usage of conditional comments in c/c++ software often implies a difficult\nto read source code and raises the maintanence burden. That is bound to happen sooner or later.\nThe induction process for new programmers is accompanied by a high learning curve, due to\nmostly no available documentation for all the used C-Macros and conditional comments. \nIntroducing a new feature may cause another conditional comment all over the codebase.\n\nThis software will give you a quantitative graphical overview of all used conditional comments,\ntheir spreading and a first understanding of how much code is affected by each one of the #if/#ifdef uses.\nThe input is your codebase. Options for an output are vector based image types like svg and pdf,\nbut also the raster based image type png.\n\nYou may use this software for scientific reseaches or just for understanding a codebase.\n\nDependencies:\n=============\n* Qt4 for the gui\n* librsvg for svg-\u003epdf,png conversion.\n\nCompile/Download:\n=================\nYou may download a precompiled version for windows and linux.\nIf you want to compile the software yourself, install cmake (www.cmake.org), run it to generate\nMakefiles, VisualStudio project files or whatever and compile it.\n\nHow it works:\n=============\nThis software statically analysis given files by explicitly looking for #if/#ifdef/#else/#endif\nand other constructs. No parse tree or abstract syntax tree is generated or necessary for this\ntask. Nested conditional comments are supported, #ifdef-guards are recogniced and ignored.\nThe parser is multi-thread capable and depending on your cpu cores even a large code base is\nanalysed very fast.\n\nScreenshots:\n============\n![Preview screen, select #ifdefs and colors](http://davidgraeff.github.com/analyseConditionalComments/images/tool-screen-result.png)\n![Select files](http://davidgraeff.github.com/analyseConditionalComments/images/tool-screen-select.png)\n![Result of an lwIP analyses](http://davidgraeff.github.com/analyseConditionalComments/images/tool-result1.png)\n![Result of an Contiki/network (IPv6) analyses](http://davidgraeff.github.com/analyseConditionalComments/images/tool-result2.png)\n\nLicense:\n========\nNot decided yet. Probably dual-licensed as GPLv3 and Apache License, Version 2.0.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidgraeff%2Fanalyseconditionalcomments","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavidgraeff%2Fanalyseconditionalcomments","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidgraeff%2Fanalyseconditionalcomments/lists"}