aldebap / ccompiler Goto Github PK
View Code? Open in Web Editor NEWC Compiler
C Compiler
compileSourceFile functions is big enough to be separated from compiler function to a distinct source file. It's also an opportunity to create functions to initialize and destroy required objects to perform the compilation.
Implement the parsing of simple macro definition in the preprocessor
Remove the comment parsing from the lexical parser, since it's been removed during preprocessor phase
Add -D option to command line to define macros
Implement nested preprocessor conditionals
Implement a verification so that macro value replacement does not get into a infinite recursion replacement
Implement the preprocessor conditional based on not defined macro (#ifndef)
Refactor the compiler.c by creating a separate function in order to separate the compilation passes for a single file name from the CLI arguments parsing
Adjust all regex to support CR + LF line delimiters
A new test case to check that empty lines are being removed from the output file
Just as for macro list, implement include paths using a list
Implement the preprocessor conditional statement (#if)
When addPath receives a colon delimited list of paths, individual paths needs to be inserted in PathList
Enable code coverage to unit test's CMake file
Improve build.ksh script to test if a CMake file was changed to automatically execute a build all operation
Implement the replacement of valued macro occurrences with corresponding value in the preprocessor
Change the Option's includePath attribute to be a PathList, instead of a string
Create an action to build and run all unit tests as soon as +code is pushed to the repo
Add values for default FILE and LINE to the start of preprocessing phase
Some tests need to check the content on stdout but, when ran using CTest, some conflict happen with CTest stdout making the test to fail
Add functions to initialize and destroy Options struct instances
Implement the parsing of valued macros with multiple lines value definition
Implement the parsing of macro definition associated with a constant value in the preprocessor
Implement else on preprocessor conditionals
Use the malloc() mock function, provided by CMocka, to add memory leak test scenarios
Three new test cases for comment in the beginning, middle and end of a line to make sure preprocessor is discarding only the comment from the output file
Turn the Options object a singleton, with a method to access the global single instance
Create a source file to define constants for preprocessor error codes
Choose a C lint and add source code validation to build files and build action
Add a unit test case for scenarios with multiple lines comment
Check the preprocessor reference to undestand how to implement a way to add references to the original file line numbers in the preprocessed file
Add -I option to command line to define the include path
Create a new test case for compiler.c to check that all files are compiled when multiple file names are given to compiler
Implement the parsing of parameterized macro definition in the preprocessor
Implement the use of C_INCLUDE_PATH env variable to set the include search directories
Add test cases to compileSourceFile function
Implement the preprocessor conditional based on defined macro (#ifdef)
Add the feature of #pragma to the preprocessor
Implement the inclusion of include files in the preprocessor
Add the feature of #warning and #error to the preprocessor
Add test cases to lexical parser to check the delimited character and delimited strings are correctly parsed
Add test cases for scenarios where de closing delimiter is missing
Add function to destroy MacroList instances and free all dynamic alocated resources
Add test cases to initializeMacroList function
Use Cmake to build and run unit test cases instead of doing it the hard way in a shell script
Add function to destroy Preprocessor instances and free all dynamic alocated resources
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.