Giter Site home page Giter Site logo

cpreprocessor's Introduction

Grama Nicolae

Grama Nicolae Grama Nicolae

I am a Computer Science and Software Engineering Undergraduate, passionate about technology & programming. I am a fast learner, very ambitious, good at searching and finding solutions to different problems.

Github Stats

cpreprocessor's People

Contributors

gramanicu avatar

Watchers

 avatar

cpreprocessor's Issues

Data Structures Implementation

Implement all the required data structures:

  • pair
  • list
  • hashmap

Build them as libraries, which are there used by the main program.

Implement coding style translation

My personal coding style is the one used during development and in this repository, but the linux kernel coding style is the one that will be used in the "solution archive" (according to the problem statement)

Initialize all allocated memory

All the dynamic memory allocations should use calloc instead of malloc (to make sure there are no "uninitialized pointer" bugs)

Implement preprocessing

Implement all the logic behind the preprocessor:

  • simple defines
  • recursive defines
  • includes
  • conditional defines
  • multiline defines

Write the documentation (Readme)

Write the Readme.md documentation, using these guidelines:

  • write the name and class
  • homework name
  • organization:
    • explain the code structure
    • some explanations about how the code works and why it was used
    • speed, how "elegant" the code is, possible improvements
    • corner cases that were not included in the problem statement and how they are handled
  • implementation:
    • if all the problem statement's requirements were implemented
    • extra functionalities (if they are, and why they exist)
    • missing functionalities
    • difficulties
    • interesting stuff
  • compilation and execution
  • bibliography / sources

Parse arguments

Parse the command-line arguments received.

  • -D<SYMBOL>[=<MAPPING>] - define the symbol SYMBOL and assign the value from MAPPING. If mapping is empty, the value will be equal to ""
  • -I<DIR> - add a directory that will be used to search for the files specified with the #include directive
  • -o<OUTFILE> - the file where to store the processed code
  • <INFILE> - the source code file. If not specified, the code will be read from STDIN

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.