Skip to content

Namyalg/diff-checker-code-comments

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Diff Checker Code Comments

Introduction

This repository contains the scripts to remove comments - single line and multi-line comments written in the javadoc style

Javadoc comments are written in the following format:

    /**
    * Returns an Image object that can then be painted on the screen. 
    * The url argument must specify an absolute <a href="#{@link}">{@link URL}</a>. The name
    * argument is a specifier that is relative to the url argument. 
    * <p>
    * This method always returns immediately, whether or not the 
    * image exists. When this applet attempts to draw the image on
    * the screen, the data will be loaded. The graphics primitives 
    * that draw the image will incrementally paint on the screen. 
    *
    * @param  url  an absolute URL giving the base location of the image
    * @param  name the location of the image, relative to the url argument
    * @return      the image at the specified URL
    * @see         Image
    */

    public Image getImage(URL url, String name) {
        try {
            return getImage(new URL(url, name));
        } catch (MalformedURLException e) {
            return null;
        }
    }

This style is used to write API documentation

Use case

During the course of my GSoD project, I have been writing API documentation for C/C++ code using the documentation generator Doxygen

To avoid the possibility that the source code may be modified in the process of doing so, I created a script written in lex that can be used to remove comments from the source code. A diff of the 2 files can be performed to ensure the integrity of the source code

Usage

  1. Install lex/flex. Lex is the lexical analyser that parses the input source code and tokenises it

  2. Execute lex remove_comments.l. This produces a file lex.yy.c. Read more about what a lexical analyser does here

  3. Execute cc lex.yy.c, this generates the executable a.out, like any other C program

  4. Run ./a.out <source-file> <target-file>, where <source file> is the file with comments and <target file> is a new file without comments

Example

  1. Consider a sample file input.cpp with the contents

/** 
 * This is a sample input which javadoc style comments 
 */
#include<stdio.h>

int main(){
	/**
	 * Performs the addition of 3 and 5
	 */
	printf("The sum of 3 and 5 is %d\n", 3+5);
	return 0;
}


  1. On executing the above-mentioned commands, the output is in file output.cpp



#include<stdio.h>

int main(){
	

	printf("The sum of 3 and 5 is d\n", 3+5);
	return 0;
}



The output has newlines which can be removed during further preprocessing

About

No description, website, or topics provided.

Resources

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published